-1

这是一个获取数字输入的程序。从给定或输入的数字中,仅将那些偶数的数字存储在数组中。一旦 5 个偶数已经存储在数组中,输入将停止/终止。所以这是我的代码:

#include <stdio.h>
#include <conio.h>
int main()
{
int num[5];
int x, counter, even[5], numEven=0;



    for(counter=0; counter<5; counter++){ //loop for getting the numbers from the user
        printf("Enter number: ");
        scanf("%d", &num[counter]);
            if(num[counter]%2==0){                //storing the even numbers
                even[numEven] = num[counter];
                numEven++;
            }
    }




    printf("\n\nEven numbers: "); //printing even numbers
    for(counter=0; counter<numEven; counter++){
        printf("%d, ", even[counter]);
    }


getch();
return 0;
} 

当已经存储了 5 个偶数时,我对停止输入的部分感到困惑。有什么遗漏吗?还是我做错了?我希望我能得到代码的帮助和建议。非常感谢。

4

2 回答 2

2
#include <stdio.h>
#include <conio.h>
int main()
{
   int x, even[5], numEven = 0;

   while (numEven < 5)
   {
      scanf("%d", &x);
      if (x % 2 == 0)
      {
         even[numEven++] = x;
      }
   }
   printf("\n\nEven numbers: "); //printing even numbers
   for(x=0; x<numEven; x++)
   {
     printf("%d, ", even[x]);
   }
   getch();
   return 0;
} 

您保持读取输入直到numEven达到 5。如果读取输入是偶数,则将其存储在数组中并递增numEven

于 2013-09-07T02:50:34.520 回答
0

如果程序要求用户输入的次数不固定并且取决于用户的输入,则使用 while 循环。

while (numEven < 5) {
   printf("Enter number: ");
   scanf("%d", &num[counter]);
   if (num[counter] % 2 == 0) {
       even[numEven] = num[counter];
       numEven++;
   }
}
于 2013-09-07T02:52:53.363 回答