【问题标题】:Function asking for input in C在 C 中请求输入的函数
【发布时间】:2013-06-14 04:54:52
【问题描述】:

我正在编写一个代码,要求一次输入(scanf)一个正数,当输入一个负数时,将显示所有数字的平均值。

目前为止:

`

scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&d);
 if(a<0)
printf("%d\t",a);
else if (b<0)
printf("%d\t",a);
else if (d<0)
printf("%d\t",(a+b)/2);

我只是 atm 编程的初学者,我认为我做得不对,但我不确定。有什么帮助/提示吗?

【问题讨论】:

  • 你学会循环了吗?
  • 是的。我不擅长它们,但我已经学会了。

标签: function average scanf


【解决方案1】:

运行它,看看这是不是你要找的:

 #include <stdio.h>

    main()
    {
       int n,sum=0,i=0;
       while(1)
       {
           scanf("%d",&n);
           if(n<0)
           break;
           sum+=n;
           i++;
       }
       (i!=0)?(printf("%f",(float)sum/i)):(printf("0"));
    }

【讨论】:

    【解决方案2】:

    使用循环,您可以:

    double input, sum = 0.0;
    int count = 0;
    
    do
    {
        scanf("%d\t",&input)
        count++;
        sum += input;
    
       if(input < 0)
         printf("%d", &(sum/count))
    } while (input >= 0);
    

    我不太确定 printf 的语法,但我认为它有效

    【讨论】:

      【解决方案3】:
      #include <stdio.h>
      int main()
      {
          int sum = 0;
          int counter = 0;
          int a = 0;
      
          do {
              scanf("%d", &a);
              if (a < 0)
                  if (counter != 0)
                      printf("%f", (float)sum/counter);
                  else
                      printf("%s", "No numbers entered.");
              else
                  sum += a;
              counter++;
          } while (a >= 0);
      
          return 0;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-29
        • 1970-01-01
        • 2015-06-21
        • 1970-01-01
        • 2021-09-18
        • 1970-01-01
        相关资源
        最近更新 更多