求教关于while (scanf("%d",&a)!=0) 为什么输入0不能退出
#include<stdio.h>int main(void)
{
int num,o,j,sum_o,sum_j;//定义一个输入的数num,偶数o,奇数j,所有偶数之和sum_o,所有奇数之和sum_j
sum_o=sum_j=0;
printf("输入一串数字:\n");
o=j=0;
while((scanf("%d",&num)!=0)) // 输入一个数,当输入数字为0时终止
{
if(num%2==0)
{
o++; //计算偶数个数,计算所有偶数之和
sum_o+=num;
}
else
{
j++; //计算数个数,偶数之和
sum_j+=num;
}
}
printf("偶数个数为%d个,偶数平均数为%d;奇数个数为%d个,奇数平均数为%d",o,sum_o/o,j,sum_j/j);
} 但是对于字符来说 while(scanf("%c",&ch))!=#当我输入#字符时可以退出循环,这是为啥列? wang815309286 发表于 2016-8-14 10:03
但是对于字符来说 while(scanf("%c",&ch))!=#当我输入#字符时可以退出循环,这是为啥列?
兄弟,好象0是偶数吧,呵呵,那样就退不出来了 很显然你不知道scanf的返回值是什么。那么我告诉你好了原型“int __cdecl scanf(const char * __restrict__ _Format,...)”,它返回值的含义是成功输入的参数个数,既然你每次都scanf("%d",&num)他成功的时候必然返回1. Krant5 发表于 2016-8-14 11:08
很显然你不知道scanf的返回值是什么。那么我告诉你好了原型“int __cdecl scanf(const char * __restrict__ ...
哦哦~懂了懂了~感谢~
页:
[1]