2016-10-19 12 views
1

私の先生は10個の数字を入力するように指示されたコードを与え、配列を最小から最大までソートする、結果を印刷します。私たちがしなければならないことは、入力を読み込んでそれを印刷することだけでした。これは彼女が私たちに与えたものである:ユーザが入力した10個の値を配列に読み込んでCで印刷する

#include <stdio.h> 
#include <stdbool.h> 
#define num 10 

void sort_array(int *a, int b); 

int main(void) 

{ 

    int array[num] = {0}, i; 



    for (i = 1; i < 10; i++) { 
     printf("Please enter %d integers ", num); 
    /* read the input! */ 

    sort_array(a, num); 

    /* print the sorted array */ 

return 0; 

} 

void sort_array(int *a, int b) 

{ 

bool swapped = true; 
int temp, i, j = 0; 

while (swapped) 
    { 
    swapped = false; 
    j++; 
    for (i = 0; i < b - 1; i +1) 

     { 
      if (a[i] > a[i+1]) { 
       temp = a[i]; 
       a[i] = a [i + 1]; 
       a[i + 1] = temp; 
       swapped = true; 
       } 

      } 

     } 
} 

これで私の試みです:

#include <stdio.h> 
#include <stdbool.h> 
#define num 10 

void sort_array(int *a, int b); 

int main(void) 

{ 

int array[num] = {0}, i, j; 

printf("Please enter %d integers: ", num); 
for (i = 0; i < 10; i++) { 
    scanf("%d", &array[i]); 
    } 

/* read the input! */ 

sort_array(array, num); 

/* print the array */ 
for (i = 0; i < 10; i++) { 
    printf("%d ", array[i]); 
    } 

return 0; 

} 

void sort_array(int *a, int b) 

{ 

bool swapped = true; 
int temp, i, j = 0; 

while (swapped) 
    { 
    swapped = false; 
    j++; 
    for (i = 0; i < b - 1; i +1) 

     { 
      if (a[i] > a[i+1]) { 
       temp = a[i]; 
       a[i] = a[i + 1]; 
       a[i + 1] = temp; 
       swapped = true; 
       } 

      } 

     } 
} 

私はかなり右端ているからでしょうね知っている、誰かが私を助けてくださいだろうか?私はQuincyを使ってコンパイルしています。プログラムは私に数字を入力させますが、私はctrl + cでプログラムを終了しなければなりません。

申し訳ありませんが、私はフォーマットを台無しにしました。

+0

をプログラムを提出するすべての不要なプリントを削除することを忘れないでください?もしそうなら、それをどう思うか教えてください。 –

+0

申し訳ありません、ただ編集しました。プログラムは数字を入力させますが、何もしません。 –

+1

あなたは 'for(i = 0; i

答えて

3

あなたがC言語でプログラミングしているとき、それはまた私にお見せするためにいくつかのプリントを含めるwork..and行う権利補正して、私はあなたのコードを再書き込みprintf

を使って非常に良い練習のデバッグですあなたがデバッグすることができるかという観点..

は、あなたのプログラムが正しく動作しませんでしたあなたの先生に

#include <stdio.h> 
#include <stdbool.h> 
#define num 10 

void sort_array(int *a, int b); 

int main(void) 

{ 

int array[num] = {0}, i, j; 

printf("Please enter %d integers:\n", num); 
for (i = 0; i < 10; i++) { 
    printf("number %d: ", i+1); 
    scanf("%d", &array[i]); 
} 

/* read the input! */ 

sort_array(array, num); 

/* print the array */ 
printf("Sorted Array: ["); 
for (i = 0; i < 10; i++) { 
    printf("%d, ", array[i]); 
    } 
printf("]"); 

return 0; 

} 

void sort_array(int *a, int b) 

{ 

bool swapped = true; 
int temp, i, j = 0; 

while (swapped) 
    { 
    swapped = false; 
    j++; 
    for (i = 0; i < b - 1; i ++) 

     { 
      printf("i:%d --- A[i] = %d ---- A[i+1] = %d\n", i, a[i], a[i+1]); 
      if (a[i] > a[i+1]) { 
       temp = a[i]; 
       a[i] = a[i + 1]; 
       a[i + 1] = temp; 
       swapped = true; 
       } 

      } 

     } 
} 
+0

'stdlib.h'で' qsort'を使ってみませんか?(あなたのロール紙よりもはるかによくテストされていることが保証されています) –

+0

これはまだ本の中には書かれていないからです。私は少し前に読んで、あなたがそれを行うことができることを知っているが、私は彼女が私が "騙されている"と思うようにしたくない。 –

関連する問題