方法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