сортировать числа по цифрам - PullRequest
0 голосов
/ 27 октября 2010

почему этот код не работает?он не показывает вывод

#include <stdlib.h>
#include <iostream>
#include <string.h>
void Sort(int *arr,int length){
    int *iter=arr;
    char buf[12],buf1[12];
     while ((iter++)< (arr+length)){

          if (iter==arr || (strcmp(itoa(*iter,buf,10),itoa(*(iter-1),buf1,10))>=0)){
       iter++;
          }
          else{
              *iter^=*(iter+1);
              *(iter+1)^=*iter;
              *iter^=*(iter+1);
              iter--;
          }

          }


     }

     int main(){

         int a[]={1,2,10,100,19,21,2,4,31};
         int n=sizeof(a)/sizeof(int);
         Sort(a,n);
          for(int i=0;i<n;i++)
            std::cout<<a[i]<<"  ";




          return 0;
     }

пожалуйста, помогите

1 Ответ

3 голосов
/ 27 октября 2010

Вот вывод с использованием gcc 4.5.1:

> g++ -o test test.cpp
> test.exe
1  2  10  100  19  21  2  4  31

Как видите, он компилируется и отлично работает вместо меня.Работает ли он так, как задумано, это другой вопрос.

Вы уверены, что сохранили свои изменения перед компиляцией?Какой компилятор вы используете?


Более того, вам лучше использовать std::vector для хранения целых чисел и std::sort с пользовательским comparator объектом для выполнения сортировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...