1 你的第二个if分支需要和第二个scanf组成一个代码块,才能达到预期的效果。
2 输入的是实数而不是整形
3 实数在是否零值的判断上不能用等于0
2 输入的是实数而不是整形
3 实数在是否零值的判断上不能用等于0
程序代码:#include <stdio.h>
int main(void)
{
int i,sf=0,sl=0,sz=0,n,m;
float a;
while(1)
{
printf("请输入一个非零值: ");
scanf("%d",&n);
if(n==0)
break;
else
{
for(i=0;i<n;i++)
{
printf("请输入你想输入的值: ");
scanf("%d",&m);
if(m>0)
sz++;
else if(m<0)
sf++;
else
sl++;
}
}
printf("%d %d %d\n",sf,sl,sz);
sz=0;
sf=0;
sl=0;
}
return 0;
}
按照需求和你的思路应该是这样的。
不知道我做的对不对,如果不对,还请各位指正。