C语言从用户输入的一组数中找到全部偶数 输出偶数个数和偶数。

#include<stdio.h>
#include<conio.h>
#define SIZE 10
int FindEvenNumbers(int list[],int even[]);
int main(void)
{
extern int list[SIZE];
extern int even[SIZE];
extern int count;
int i;
printf("请输入%d个整数:\n",SIZE);
for(i=0;i<SIZE;i++)
scanf("%d",&list[i]);
count=FindEvenNumbers(list,even);
printf("有%d个偶数:\n",count);
for(i=0;i<count;i++)
printf("%d",even[i]);
printf("\n");
printf("请按任意键继续...\n");
getch();
return 0;
}
int FindEvenNumbers(int list[],int even[])
{
int j,k;
for(k=0,j=0;j<SIZE;j++)
if(list[j]=0)
{
even[k]=list[j];
k++;
}
return k;
}
int count;
int list[SIZE];
int even[SIZE];

运行永远得到的是0个偶数...

按照如下步骤进行即可:

1 逐个输入整数,如果是偶数,则保存在数组中,否则放弃。

2 当输入结束后,输出总个数,并逐个输出保存下来的偶数。


代码如下:

int main()
{
    int a[100];
    int i, n = 0;
    while(~scanf("%d",&a[n]))
        if(a[n]%2==0) n++;
    printf("共计%d个偶数:\n",n);
    for(i = 0; i < n; i ++)
        printf("%d ",a[i]);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
#include<stdio.h>
#include<conio.h>
#define SIZE 10
int FindEvenNumbers(int list[],int even[]);
int main(void)
{
 extern int list[SIZE];
 extern int even[SIZE];
 extern int count;
 int i;
 printf("请输入%d个整数:\n",SIZE);
 for(i=0;i<SIZE;i++)
  scanf("%d",&list[i]);
 count=FindEvenNumbers(list,even);
 printf("有%d个偶数:\n",count);
 for(i=0;i<count;i++)
  printf("%d ",even[i]);    /*这里输出的时候最好带一个空格,看得清楚一些*/
 printf("\n");
 printf("请按任意键继续...\n");
 getch();
 return 0;
}
int FindEvenNumbers(int list[],int even[])
{
 int j,k;
 for(k=0,j=0;j<SIZE;j++)
 if(list[j]%2==0)    /*问题主要在这里,判断是否偶数要对2取余,为0即为偶数,另外,判断是否相等,要用两个等号== */
  {
   even[k]=list[j];
  k++;
 }
 return k;
}
int count;
int list[SIZE];
int even[SIZE];

追问

谢了。写掉了

帮忙看一下这个

本回答被提问者和网友采纳
第2个回答  2016-01-09
思路:
首先输入一系列数字;
然后找到全部偶数;
最后输出偶数个数和偶数。
简单代码如下:
#include <stdio.h>
int main()
{
long num;
printf("输入数字 Enter结束!");
scanf("%ld",&num);
int i = 10,a=0,b=0;
while(num*10>=i)
{
if(((num%i)/(i/10))%2 == 1){
a++;}
if(((num%i)/(i/10))%2 == 0){
b++;}
i *= 10;
}
printf("奇数=%d 偶数= %d",a,b);
}
相似回答