0

私はcを初めて使用し、を使用してキーボードから入力された10個の整数値を取得し、をscanf使用してそれらを印刷するacプログラムを作成しようとしてprintfいますが、結果は正しくありません。コードは次のとおりです。

   #include<stdio.h>
    #include<conio.h>
    main(){
     int x[10];
     printf("\n\n\t\t PRGRAM THAT CAPTURES AND PRINTS 10 SCORES");
     for(int i=1;i<=10;i++){
     printf("\n\tEnter Score %d", i);
     scanf("%d",x);
    }
     printf("\n\t The entered scores are: %d",x[i]);
     return(0);
    }

与えられた出力は8731のような4桁の数字ですが、1234567890のようなものを期待しています。

4

3 に答える 3

1

for値を読み取るときと同じように、値を表示するために新しいループを作成する必要があります。

PS:コードをより適切にフォーマットしてください。後で感謝します。

PS2:避けるようconio.hにしてください。これは標準ではなく、コードにも必要ありません。

PS3:あなたのコードも間違っています。する必要がありますfor(int i=0;i<10;i++)。配列はから0size-1はなく、から1になりsizeます。Cコンパイラは、配列に対して無効なインデックスであることを警告しません。i[10]

于 2012-04-10T09:57:45.843 に答える
0
   #include<stdio.h>
    #include<conio.h>

ヘッダー<conio.h>は標準ではありません。使用しないと携帯性が向上します。とにかく、あなたのプログラムはそれから何も使用しません。

    main(){

関数main()はを返しますint。そのように明示的に言う習慣を身につけてください(そして、それがパラメータをとらないことを客観的に指定する習慣に入るかもしれません)。

     int x[10];
     printf("\n\n\t\t PRGRAM THAT CAPTURES AND PRINTS 10 SCORES");

printf()すべての実装でより適切に機能させるには、それぞれを。で終了し'\n'ます。そうしないと、出力が正しく表示されない場合があります。

     for(int i=1;i<=10;i++){
     printf("\n\tEnter Score %d", i);
     scanf("%d",x);

ループ内の配列内の同じ位置に常に読み取ろうとしていますか?

    }
     printf("\n\t The entered scores are: %d",x[i]);

要素x[i]が存在しません。コードのこの時点で、iは最大の有効な配列インデックスよりも大きくなっています。

     return(0);
    }
于 2012-04-10T10:07:26.123 に答える
0

これを試して:

    #include<stdio.h>
    #include<conio.h>
    int main(){
     int x[10];
     printf("\n\n\t\t PRGRAM THAT CAPTURES AND PRINTS 10 SCORES");
     for(int i=0;i<10;i++){ //Change 1
         printf("\n\tEnter Score %d", i);
         scanf("%d",&x[i]); //Change 2
      }
     //Change 3
     for (int i=0; i<10; i++) 
         printf("\n\t The entered scores are: %d",x[i]);
     return(0);
    }
于 2012-04-10T10:00:13.770 に答える