结构体之学生成绩统计

1.输入学生的姓名和分数
2.输出之前输入的数据
3.找出其中分数最大的和最小的人

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
    
    
	char *name;
	int score;
};
int main()
{
    
    
	int i;
	struct student aa[3];
	struct student maxScore;
	struct student minScore;
	
	for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
	{
    
    
		printf("请输入第%d个学生姓名:",i+1);
		aa[i].name=(char *)malloc(128);
		memset(aa[i].name,'\0',128);
		scanf("%s",aa[i].name);
		printf("请输入第%d个学生的分数:",i+1);
		scanf("%d",&aa[i].score);**//scanf里面一定不能加'\n'**
	}
	for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
	{
    
    
		printf("%s:%d\n",aa[i].name,aa[i].score);
	}
	
	maxScore=aa[0];
	minScore=aa[0];
	int n;
	
	for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
	{
    
    
		if(maxScore.score<aa[i].score)
		{
    
    
			maxScore=aa[i];
			n=i;
		}
		
	}
	printf("成绩最高的是:%s,%d分\n",maxScore.name,maxScore.score);
	for(i=0;i<sizeof(aa)/sizeof(aa[0]);i++)
	{
    
    
		if(minScore.score>aa[i].score)
		{
    
    
			minScore=aa[i];
		}
		n=i;
	}
	printf("成绩最差的是:%s,%d分\n",minScore.name,minScore.score);
		
	return 0;
}

scanf里面一定不要添加’\n’,printf里面可以添加作为换行,但scanf里面不必。

猜你喜欢

转载自blog.csdn.net/qq_43482790/article/details/114639067
今日推荐