一旦五个偶数放在数组中,程序将停止

时间:2013-09-07 02:44:24

标签: c arrays

这是一个获取数字输入的程序。从给定或输入的数字中,将这些数字存储在偶数中。一旦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个偶数时,我会在哪个部分停止输入时感到困惑。有什么遗失的吗?或者我做错了吗?我希望我可以通过代码获得帮助和建议。非常感谢你。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

while (numEven < 5) {
   printf("Enter number: ");
   scanf("%d", &num[counter]);
   if (num[counter] % 2 == 0) {
       even[numEven] = num[counter];
       numEven++;
   }
}