方法1:
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
int e = 0;
float avg = 0.0f;
scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
avg = (a + b + c + d + e) / 5.0;
printf("%.1f\n", avg);
return 0;
}
方法2:
#include<stdio.h>
int main()
{
float a,b,c,d,e,av;
scanf("%f %f %f %f %f",&a,&b,&c,&d,&e);
av=(a+b+c+d+e)/5;
printf("%.1f",av);
return 0;
}
方法3:
#include <stdio.h>
int main()
{
//输入
int i = 0;
int score = 0;
int sum = 0;
//定义的时候出错
float avg = 0.0f;//这是float类型正确定义的形式
for (i = 0; i < 5; i++)
{
scanf("%d", &score);
sum = sum + score;
}
//计算
avg = sum / 5.0;
//输出
printf("%.1f\n", avg);
return 0;
}
或:
#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
int input = 0;
for (i = 0; i < 5; i++)
{
scanf("%d", &input);
sum += input;
}
printf("%.1f\n", sum / 5.0);
return 0;
}
方法4:
#include <stdio.h>
int main()
{
//输入
int data[5] = { 0 };
int i = 0;
int sum = 0;
float avg = 0.0f;
for (i = 0; i < 5; i++)
{
scanf("%d", &data[i]);
}
//计算
for (i = 0; i < 5; i++)
{
sum = sum + data[i];
}
avg = sum / 5.0;
//输出
printf("%.1f\n", avg);
return 0;
}
或:
#include <stdio.h>
int main()
{
//输入
int data[5] = { 0 };
int i = 0;
int sum = 0;
float avg = 0.0f;
for (i = 0; i < 5; i++)
{
scanf("%d", &data[i]);
sum = sum + data[i];
}
avg = sum / 5.0;
//输出
printf("%.1f\n", avg);
return 0;
}
注意:
在定义double数据类型时:0.0默认是double类型,0.0f是float类型;
若混淆编译器可能会报警告;
double avg = 0.0;
float avg = 0.0f;
sum是整型,5也是整型,得到的结果就是整型:72.000000(实际应该输入72.2);要想得到小数点后具体数字需要在除数或者被除数之一后应加点(.),或者两者后都加点(.);
printf函数在打印小数是默认保留小数点后面6位;
%.1f就可以让小数点后面保留1位;
%.5f就可以让小数点后面保留5位。
小数在内存中很难精确保存。
示例:
#include <stdio.h>
int main()
{
int a, b, c;
float avg = 0.0f;
scanf("%d %d %d", &a, &b, &c);
avg = (a + b + c)/3;
printf("%f\n", avg);
return 0;
}
- 1.在avg = (a + b + c)/3处加点(.)是 : avg = sum / 3.0 ;
输入:1 7 2
输出:3.333333
若不加点(.)是:
输入:1 7 2
输出:3.000000
- 2.在打印时加点(.1)是:printf("%.1f\n", avg);
输入:1 7 2
输出:3.3
在打印时加(.4)是:printf("%.4f\n", avg);
输入:1 7 2
输出:3.3333