身寸白勺女少 发表于 2019-5-14 20:53:26

求解一下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;
}
                                                   

Croper 发表于 2019-5-14 21:01:45

getchar是获取字符,请使用scanf

身寸白勺女少 发表于 2019-5-14 21:15:19

Croper 发表于 2019-5-14 21:01
getchar是获取字符,请使用scanf

我改成while(input!='0')
{
scanf("%f",&input);
....
(把putchar删了)
}
最后输出不了个数了,还是死循环{:10_291:}

jackz007 发表于 2019-5-14 21:16:57

#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) ;
}

身寸白勺女少 发表于 2019-5-14 21:44:03

jackz007 发表于 2019-5-14 21:16


这些函数的调用好多都不懂,我要查一查,不过还是谢谢大佬

身寸白勺女少 发表于 2019-5-14 21:47:00

Croper 发表于 2019-5-14 21:01
getchar是获取字符,请使用scanf

谢谢大佬
页: [1]
查看完整版本: 求解一下c语言老师布置的作业