清如许 发表于 2022-12-8 23:28:35

求大佬们指点!为什么程序我也发运行啊!

程序要求是提取数据中的数字并求和!
这是我的代码
#include<stdio.h>
int main()
{
        float a;
        int x;
        long long int sum;
        sum=0;
        while(x=(scanf("%f",&a))!=EOF)         //没有数据时退出循环
        {
                if(x!=0)                                    //scanf读取到字母时被挡住,返回值是0,读取到数字时返回值是1,我用这个作为条件,是不是有什么问题??
                {
                        sum=sum+a;
                }
                else      
                {
                        getchar();
                }
        }
        printf("%f",sum);
       
       
        return 0;

}

输入数据按下回车后就没动静了,按ctrl+c也没反应
请教了!

jackz007 发表于 2022-12-8 23:41:51

#include<stdio.h>

int main(void)
{
      float a                        ;
      int x                            ;
      float sum                        ;// 用于累加浮点数的变量一定要定义为 long long int ? 什么动机???
      sum = 0                        ;
      while((x = scanf("%f" , & a)) != EOF)
      {
                while(getchar() != '\n') ; // 为了防止在输入字母时进入死循环,必须添加此句            
                if(x) sum += a         ;
      }
      printf("%f\n" , sum)             ;
      return 0                         ;
}
      编译运行实况:
D:\\C>g++ -o x3 x3.c

D:\\C>x3
1.23
a.bc
c.de
3.14
v.sd
2.78
^Z
7.150000

D:\\C>

清如许 发表于 2022-12-9 00:33:12

jackz007 发表于 2022-12-8 23:41
编译运行实况:

谢谢大佬!
页: [1]
查看完整版本: 求大佬们指点!为什么程序我也发运行啊!