用C求和数

时间:2014-11-17 04:28:31

标签: c loops

所以我在C课程中遇到如下问题:下载网站上发布的文件'mydatafile',将文件传输到远程Unix机器,并根据p上列出的'running_sum.c'示例.26的Kelley-Pohl书中,创建了一个名为'processdata.c'的C代码,其中

  • 从数据文件中读取(作为浮动)数字
  • 在屏幕上以三列显示它们作为计数正数负数
  • 计算正数和负数
  • 计算所有正数的总和以及所有负数的总和
  • 在屏幕上输出结果

    I have read … positive numbers, with a sum = …
    I have read … negative numbers, with a sum = …

到目前为止,我已经包含了我的代码。它运行,但它在负列中给出了正数,反之亦然。另外,我不太确定如何计算正面和负数的数量及其总和。任何帮助将不胜感激。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
  int i;
  float x, positive, negative;

  if (scanf("%lf", &x) !=1) {
    printf("No data found\n");
    exit(1);}

  positive=negative=x;
  printf("%9s%22s%22s\n",
     "Count", "Positive Numbers", "Negative Numbers");
     printf("%9d%22.3f%22.3f\n",
        1, x, positive,negative);

     for (i=2; scanf("%f", &x) == 1; ++i) {
       if (x>0){
         positive=x;
         negative=0;}
       else if (x<0){
         negative=x;
         positive=0;}
       printf("%9d%22.3f%22.3f\n", i, x, positive, negative);
     }
     return 0;
     }

1 个答案:

答案 0 :(得分:2)

需要更改

printf("%9d%22.3f%22.3f\n", i, x, positive, negative);

printf("%9d%22.3f%22.3f\n", i, positive, negative);

这将解决问题。