2016-09-21 5 views
1

Я успешно отсортировал values, но при попытке распечатать их с помощью for-loop или printf в конце программа ничего не делает.For-loop not printing array

int main(void){ 
    int values[] = {23,19,1}; 
    int size = 3; 
    int counter = 0; 
    int i; 
    int holder; 

    for(i = 0; i < size; i++){ 
     counter = 0; 
     if(values[i] > values[i + 1]){ 
      holder = values[i]; 
      values[i] = values[i + 1]; 
      values[i + 1] = holder; 
      counter = 1; 
      printf("index: %i = %i, index: %i = %i\n", i, values[i], i + 1, values[i + 1]); 
      printf("Sorting..\n"); 
     } 
     if((i + 2) == size){ 
      if(counter == 0){ 
       printf("The array is sorted! %i, %i, %i\n", values[0], values[1], values[2]); 
       return true; 
       break; 
      } 
      else { 
       i = -1; 
      } 
     } 
    } 

    printf("%i\n", values[0]); 

    for(i = 0; i < size; i++){ 
     printf("%i\n", values[i]); 
    } 
    return 0; 
} 

Выход программы является:

index: 0 = 19, index: 1 = 23 
Sorting.. 
index: 1 = 1, index: 2 = 23 
Sorting.. 
index: 0 = 1, index: 1 = 19 
Sorting.. 
The array is sorted! 1, 19, 23 
+0

'printf (" массив отсортирован! ...); return true; '0: – kaylum

+2

Удалить' return true; '. – chux

+0

В вашем первом цикле' for' оставьте 'break;' и удалите ' return true'. – Nikita

ответ

2

Ваш return true после того, как массив отсортирован хлопает из функции main, поэтому код для печати на дне никогда не достигается.