0
点赞
收藏
分享

微信扫一扫

结构体指针作业题

Fifi的天马行空 2022-03-16 阅读 67

问题:学生记录由学生,姓名,数学成绩、语文成绩、英语成绩、总成绩组成,班时有10名同学的数据已在主函数中放入score结构体数组中,编写函数fun,功能是,找出成绩最高的、最低的学生记录,通过形参返回主函数。

代码:

typedef struct Students{
	char name[10];
	int score_chinese;
	int score_math;
	int score_english;
	float score_sum;
}S;
#include <stdio.h>
#include <string.h>
void fun1(S *p , S a[])
{
	int i;
	strcpy(p->name,a[0].name);
	p->score_sum = a[0].score_sum;
	for(i = 0 ; i < 10 ; i++){
		if(p->score_sum > a[i].score_sum){
			strcpy(p->name,a[i].name);
			p->score_sum = a[i].score_sum;
		}	
	}
}
void fun2(S *p , S a[])
{
	int i;
	strcpy(p->name,a[0].name);
	p->score_sum = a[0].score_sum;
	for(i = 0 ; i < 10 ; i++){
		if(p->score_sum < a[i].score_sum){
			strcpy(p->name,a[i].name);
			p->score_sum = a[i].score_sum;
		}	
	}
}
int main()
{
	S score[10]={
		{"张三",98,89,78},{"李四",67,66,56},{"王五",90,89,67},{"小明",100,68,83},{"李明",80,60,50},
		{"小华",56,45,33},{"小红",90,99,88},{"丽丽",65,45,33},{"张明",89,55,66},{"李丽",88,67,55}		
	},*p , a , b;
	p = score;
	printf("name   chinese   math   english   sum\n");
	for(int i = 0 ; i < 10 ; i++,p++){
		score[i].score_sum = score[i].score_chinese+score[i].score_english+score[i].score_math;
		printf("%s\t%d\t%d\t%d\t%g\n",p->name,p->score_chinese,p->score_math,p->score_english,p->score_sum);
	}
	fun1( &a , score);
	printf("*******************\n");
	printf("成绩最低学生姓名:%s , 总成绩为:%g \n",a.name,a.score_sum);
	
	fun2( &b , score);
	printf("*******************\n");
	printf("成绩最高学生姓名:%s , 总成绩为:%g \n",b.name,b.score_sum);
}




	
举报

相关推荐

0 条评论