输入6名学生的学号,姓名和三门课程的成绩,三门课程的名称:(programming,databse,network)。。。。。。。

本次实验用到了结构体和函数知识,程序设计在VS中实现,其他编译软件若不适合可自行修改

输入6名学生的学号,姓名和三门课程的成绩,三门课程的名称:(programming,databse,network),存入到一个结构体数组中;编写aveScore()函数,其功能是计算学生三门课程的平均成绩,并存到结构体数组中:在主函数中输入学生信息,调用aveScore()函数,并输出学生的姓名和平均分信息

源程序:

#include<stdio.h>
float aveScore(int score[3]);

struct student
{
	long stduent_id;
	char name[10];
	int score[3];//score[0]到score[2]分别代表学生的programming,dababase,network成绩
	float avescore;
};

int main()
{
	int i;
	struct student stu[6];
	for (i = 0; i < 6; i++)
	{
		printf("请分别输入第%d个学生的学号,姓名以及programming、dababase、network成绩\n", i + 1);
		scanf_s("%ld%s%d%d%d", &stu[i].stduent_id, &stu[i].name,10, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
		stu[i].avescore = aveScore(stu[i].score);
	}
	for (i = 0; i < 6; i++)
	{
		printf("\n学号:%ld\t姓名:%s\tprogramming成绩为:%d\tdababase成绩为:%d\tnetwork成绩为:%d\t平均成绩为:%.2f\n", stu[i].stduent_id, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].avescore);
	}
	return 0;
}

float aveScore(int score[])
{
	float avescore = 1.0 * (score[0] + score[1] + score[2]) / 3;
	return avescore;
}

其中为了方便讲解有些可能会存在困惑的地方,将代码复制在下面方便说明

源程序:

#include<stdio.h>
float aveScore(int score[3]);

struct student//结构体
{
    long stduent_id;
    char name[10];
    int score[3];

//score[0]到score[2]分别代表学生的programming,dababase,network成绩
    float avescore;
};

int main()
{
    int i;
    struct student stu[6];
    for (i = 0; i < 6; i++)
    {
        printf("请分别输入第%d个学生的学号,姓名以及programming、dababase、network成绩\n", i + 1);
        scanf_s("%ld%s%d%d%d", &stu[i].stduent_id, &stu[i].name,10, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);

//很多友友对于其中蓝色部分有所疑惑,不知道为何要在&stu[i].name后加上10,其实如果删除后面的10,便会出现如下图所示情况,大家可以试一试(根据需要10可以改为其他数字

其原因可以看看这位博主的文章,点击链接就可以进去,大概意思我感觉就是为了准确性和安全性,链接在这里http://t.csdn.cn/QZMr0想具体了解的友友可以去看看
        stu[i].avescore = aveScore(stu[i].score);
    }
    for (i = 0; i < 6; i++)
    {
        printf("\n学号:%ld\t姓名:%s\tprogramming成绩为:%d\tdababase成绩为:%d\tnetwork成绩为:%d\t平均成绩为:%.2f\n", stu[i].stduent_id, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].avescore);

//"%ld" 表示输出long整数;"\t"是制表格的符号,可让两个数据间有间隔;"\n"表示换行,%.2f 表示单精度浮点型,也就是float型的格式,保留两位小数
    }
    return 0;
}

float aveScore(int score[])
{
    float avescore = 1.0 * (score[0] + score[1] + score[2]) / 3;
    return avescore;
}

实验结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饭碗的彼岸one

感谢鼓励,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值