从键盘输入5个学生的成绩(整数),求他们的平均成绩(浮点数,保留一位小数)

本文介绍了如何使用C/C++编程计算5个学生的平均成绩,强调了在处理浮点数时需要注意的精度问题,包括除法操作中至少有一个操作数为浮点型,以及printf函数格式化输出小数的方法,如%.1f保留一位小数,%.4f保留四位小数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值