2

私は初心者です。データ構造を試してみたところ、なぜエラーが発生したのか理解できませんでした。コードと私が得ている出力を投稿する方が良いと思います。(私は C-Free 4.0 Compiler を使用しています) ところで。だからここにコードがあります

// 配列の要素を入力および表示する C プログラムを作成します

    #include <stdio.h>
    int main(int argc, char *argv[])
{
    int a[44],n,i=0;
    // No. of elements:
    printf("\n How many elements in all?");
    scanf("%d",&n);

    // Entering all elements:
    printf("\n\n Plz do enter the elements:");
    for(;i<n;i++)
    scanf("%d",&a[i]);

    // Displaying all elements:
    printf("\n Array elements are:");

     for(i=0;i<n;)
     {

       printf("\n a[%d]=%d",i,a[i]);
       i++;
       break;

     }

    int sum=0;
    for(i=0;i<n;i++)

    {
      sum=sum+a[i];

    }

    printf("\nSum=%d",sum);


    return 0;
}
/*
  And here's the output when I say that I'm entering 3 elements into the array:

   How many elements in all?3


 Plz do enter the elements:12
0
-22

 Array elements are:
 a[0]=12
Sum=-10Press any key to continue . . . */

ご覧のとおり、(i=0;i の値を入力できます。

4

3 に答える 3

4
for(i=0;i<n;)
{
   printf("\n a[%d]=%d",i,a[i]);
   i++;
   break;
}

a を入れたbreak;ので、1つの要素のみを出力します。

それを削除するbreak;と、すべてが印刷されます。

また、以下に示すようi++に、条件のすぐ隣に置くこともできます。i<n

for(i=0;i<n;i++)
{
    printf("\n a[%d]=%d",i,a[i]);
}
于 2012-12-07T11:44:23.513 に答える
2
for(i=0;i<n;)
{
   printf("\n a[%d]=%d",i,a[i]);
   i++;
   break;
}

ここで使用している break ステートメントは、ループから抜け出します。breakステートメントを削除すると、配列のすべての要素が出力されます....

于 2012-12-07T11:57:57.607 に答える
0

for()ループは 2 つの方法で使用できます。

for (Start value; end condition; increase value)
        statement;

また

Start value = initialization;
for (; end condition;){
        statement;
        increase value;
}

あなたのコードでは、 Start 値が i = 0 に初期化されているため、任意の方法を試すことができますが、簡単かつ明確にするために、最初に受け入れられることが望ましいです。

于 2012-12-07T11:52:47.987 に答える