求解一下c语言老师布置的作业
计算正数个数和和,计算负数个数和和,以0结束输入
疑问:可以输出正数的个数但是计算和会出错,还有就是负数好像不会识别,要咋办
#include<stdio.h>
int main()
{
float input,sum1=0,sum2=0;
int num1=0,num2=0;
printf("请输入若干个实数:");
while((input=getchar())!='0')
{
if(input>0)
{
num1=num1+1;
sum1=sum1+input;
}
else if(input<0)
{
num2=num2+1;
sum2=sum2+input;
}
}
printf("正数的个数:%d,正数之和:%f\n",num1,sum1);
printf("负数的个数:%d,负数之和:%f\n",num2,sum2);
return 0;
}
getchar是获取字符,请使用scanf Croper 发表于 2019-5-14 21:01
getchar是获取字符,请使用scanf
我改成while(input!='0')
{
scanf("%f",&input);
....
(把putchar删了)
}
最后输出不了个数了,还是死循环{:10_291:} #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char s ;
float input , sum1 = 0 , sum2 = 0 ;
int num1 = 0 , num2 = 0 ;
printf("请输入若干个实数:") ;
for(sum1 = 0 , sum2 = 0 , num1 = 0 , num2 = 0;;) {
fgets(s , 80 , stdin) ;
s = '\0' ;
if(s == '0') break ;
sscanf(s , "%f" , & input) ;
if(input > 0) {
sum1 += input ;
num1 ++ ;
} else if (input < 0) {
sum2 += input ;
num2 ++ ;
}
}
printf("正数的个数:%d ,正数之和:%f\n" , num1 , sum1) ;
printf("负数的个数:%d ,负数之和:%f\n" , num2 , sum2) ;
}
jackz007 发表于 2019-5-14 21:16
这些函数的调用好多都不懂,我要查一查,不过还是谢谢大佬 Croper 发表于 2019-5-14 21:01
getchar是获取字符,请使用scanf
谢谢大佬
页:
[1]