我终端只输入了一个数字就结束了,不知道为什么循环不了
#include<stdio.h>
int main(void)
{
int num ,n=0,sum,k,j,averge;
int list[50];
int seclist[50];
while((scanf("%d",num)!=0))
{
if(num%2==0)
{
list[n]=num;
n++;
}
else
{
seclist[k]=num;
k++;
}
}
for(j=0;j<=n;j++)
{
printf("你输入的偶数一共有%d",list[n]);
sum += list[n] ;
}
averge=sum/n ;
printf("你输入的偶数平均值是%d",averge);
printf("你输入的奇数数量是:%d",k);
return 0 ;
}
scanf接受输入的变量填的是地址,你的代码中num需要写成&num。如果是数组或指针,它们本身就是地址,接受输入才是直接填变量名字,不需要&。
#include<stdio.h>
int main(void)
{
int num ,n=0,sum,k = 0,j,averge;
int list[50];
int seclist[50];
while((scanf("%d",&num)!=EOF && num))
{
if(num % 2 == 0)
{
list[n] = num;
n++;
}
else
{
seclist[k]=num;
k++;
}
}
printf("你输入的偶数一共有%d个:", n);
for(j=0; j<n; j++)
{
printf("%d ", list[j]);
sum += list[j] ;
}
averge=sum/n ;
printf("你输入的偶数平均值是%d\n",averge);
printf("你输入的奇数数量是:%d\n",k);
return 0 ;
}
scanf所接受的是地址所以scanf("%d",num)应该改为scanf("%d",&num)