仅计算正分数,并将平均值的结果从整数更改为浮点数

时间:2019-03-30 14:04:14

标签: c

这是我用C语言编写的代码,我需要有关如何忽略 printf(“您输入%d分数。\ n”,i); 中的负数的帮助>平均结果
如何将 int平均值; 更改为浮动平均值; ,因为更改时我没有得到正确的平均值浮动。

这是我的代码:

int main()
{
int i, score, sum=0, n;
int average;

for(i=0; score>0; i++)
{
    printf("Enter score (4-10) :");
    scanf("%d", &score);
    if(score>0){
            sum = sum + score;

    }
}



 printf("You entered %d scores.\n", i);
 average = sum / i;
 printf("the average is: %d", average);
}

所需的输出:

程序将计算您输入的平均分数。
以负整数结尾。
输入分数(4-10):7
输入分数(4-10):8
输入分数(4-10):9
输入分数(4-10):10
输入分数(4-10):4
输入分数(4-10):4
输入分数(4-10):5
输入分数(4-10):-1
您输入了7分。
平均分数:6.71

2 个答案:

答案 0 :(得分:0)

Class Profile
{
private String name;
private String address;
private float salary;
private String role;

getter 
Setter

}


ArrayList<Profile> 

答案 1 :(得分:0)

似乎平均值,总和和分数都应该是十进制值(浮点数)。

这意味着您还必须更改scanf参数和printf参数。

将整数i除以浮点数和时,只要sum是浮点数,就不需要乘以1.0。

#include <stdio.h>
int main()
{
  int i;
  float score;
  float sum = 0;
  float average;

  for (i = 0; score > 0; i++) {
    printf("Enter score (4-10) :");
    scanf("%f", &score);  // accept decimals in the scores
    if (score > 0) {
      sum = sum + score;

    } else {
      break; /// leave the loop here to prevent incrementing i
    }
  }

  printf("You entered %d scores.\n", i);
  average = sum / i; // as sum is a float, this division will now work.
  printf("the average is: %2.2f", average); // print 2 decimal places as a float
}