使用指针、数组、结构体写一个代码
本人刚刚学习编程语言,读代码还行,一到写代码就完蛋,555...有个问题想要请教大神们,还望各位大神们能不辞辛苦帮菜鸟写一下这个代码{:5_108:}
使用C语言写
要求1:在代码中使用指针、结构、数组这三者
要求2:输入:n名学生
输入:每个学生的ID,以及物理、化学、生物成绩
输出:每一科的最高分,以及该学生的ID
谢谢各位大神们了!!!谢谢谢谢谢谢! #include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
char id; //15位数以内
//依次为物化生成绩
double wuScore;
double huaScore;
double shengScore;
};
void maxScoreList(struct Student*,int count);
int main(void)
{
puts("您想录入几个学生?");
int count;
scanf("%d",&count);
struct Student* student = (struct Student*)malloc(sizeof(struct Student)*count); //开辟相应动态内存空间,这是为了后面的动态数组
puts("请输入如:1001 85 96 73,中间用空格隔开,依次代表id,物化生成绩\n\n\n\n");
for (int i = 0; i < count; i++)
{
scanf("%s%lf%lf%lf",student.id, &(student.wuScore), &(student.huaScore), &(student.shengScore));
student.id.id)] = '\0'; //最后一位补\0,这是字符串结尾标志,不然会在打印时数组越界出现乱码
}
maxScoreList(student, count);
//释放动态内存资源
free(student);
student = NULL;
return 0;
}
void maxScoreList(struct Student* student, int count)
{
//初始最大成绩, 为了能被下面替换,所以设成负数
double maxWuScore = -1, maxHuaScore = -1, maxShengScore = -1;
for (int j = 0; j < count; j++)
{
if (student.wuScore >maxWuScore)
{
maxWuScore = student.wuScore;
}
if (student.huaScore >maxHuaScore)
{
maxHuaScore = student.huaScore;
}
if (student.shengScore >maxShengScore)
{
maxShengScore = student.shengScore;
}
}
//可能多个学生并列成绩 %lg相比于%lf会舍弃末尾小数0, 如3.1和3.100的差别
printf("\n\n\n--------------------光荣榜--------------------------\n\n\n");
printf("物理最高分为%lg分,对应学生id为----->", maxWuScore);
//遍历学生列表,寻找分数为maxWuScore的学生
for (int i = 0; i < count; i++)
{
if (student.wuScore == maxWuScore)
{
printf("%s", student.id);
}
}
printf("\n\n\n");
//同物理
printf("化学最高分为%lg分,对应学生id为----->", maxHuaScore);
for (int i = 0; i < count; i++)
{
if (student.huaScore == maxHuaScore)
{
printf("%s", student.id);
}
}
printf("\n\n\n");
//同物理
printf("生物最高分为%lg分,对应学生id为----->", maxShengScore);
for (int i = 0; i < count; i++)
{
if (student.shengScore == maxShengScore)
{
printf("%s", student.id);
}
}
printf("\n\n\n");
}
//这是我控制台上的运行结果,你看看是你想要的结果不
您想录入几个学生?
5
请输入如:1001 85 96 73,中间用空格隔开,依次代表id,物化生成绩
1001 45 89 100
1002 85 89 96
1003 96 75 100
1004 58 78 99
1005 96 89 100
--------------------光荣榜--------------------------
物理最高分为96分,对应学生id为----->10031005
化学最高分为89分,对应学生id为----->100110021005
生物最高分为100分,对应学生id为----->100110031005
请按任意键继续. . .
入门者 发表于 2020-4-11 11:13
#include
#include
#include
已经写出来了,谢谢了
页:
[1]