读书人

c语言有关问题switch有关问题

发布时间: 2012-07-23 09:42:20 作者: rapoo

c语言问题,switch问题
#include<stdio.h>
void main()
{
int n,n1=0,n2=0,s1=0,s2=0,a;
float v1,v2;
for(;;)
{
printf("n=");
scanf("%d",&n);
if (n==0)
break;
else
a=n%2;
switch(a)
{
case 'a==0': n1++;
s1=s1+n;
v1=s1/n1;
break;
case'a!=0': n2++;
s2=s2+n;
v2=s2/n2;
break;
default: break;
}
}
printf("%d %d %f %d %d %f",n1,s1,v1,n2,s2,v2);



}
怎么输出的都是错的啊 我就想统计输入数的奇偶数个数,并求他们的平均数

[解决办法]
'a==0'应该是0
'a!=0'应该是1
[解决办法]
你的switch case语法理解错了
应该把case 'a==0':改成case 0就行

把 case'a!=0': n2++;
s2=s2+n;
v2=s2/n2;
break;
这种情况放到default情况下就行。
[解决办法]
#include<stdio.h>
void main()
{
int n,n1=0,n2=0,s1=0,s2=0,a;
float v1,v2;
for(;;)
{
printf("n=");
scanf("%d",&n);
if (n==0)
break;
else
a=n%2;
switch(a)
{
case 1: n2++;
s2=s2+n;
v2=s2/n2;
break;
default: n1++;
s1=s1+n;
v1=s1/n1;
break;
;
}
}
printf("%d %d %f %d %d %f",n1,s1,v1,n2,s2,v2);
}
如上所示,只走两个case分支就解决(非0即1),你参考一下我的这个

读书人网 >C语言

热点推荐