悠游


私信TA

用户名:uq_87643911115

访问量:6802

签 名:

你好

等  级
排  名 42
经  验 12789
参赛次数 0
文章发表 206
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

大家好!我是糕手

解题思路:

注意事项:

参考代码:

#include<stdio.h>
#include<string.h>
struct student
{
    char name[20];
    int grade;
};
int main()
{
	int n;
	scanf("%d",&n);
	struct student m[n];
	for(int i=0;i<n;i++)
	{
	    scanf("%s %d",m[i].name,&m[i].grade);//值是加取地址符&的
	}
	for(int i=0;i<n;i++)
	{
	    for(int j=i+1;j<n;j++)
	    {
	        struct student t;//结构体变量,可以得到结构体数组元素,
	        if(m[i].grade<m[j].grade)
	        {
	            t=m[i];
	            m[i]=m[j];
	            m[j]=t;
	        }
	        else if(m[i].grade==m[j].grade)
	        {
	            if(strcmp(m[i].name,m[j].name)>0)//比较字符串
	            {
	                t=m[i];
	                m[i]=m[j];
	                m[j]=t;
	            }
	        }
	    }
	}
	for(int i=0;i<n;i++)
	{
	    printf("%s %d\n",m[i].name,m[i].grade);
	}
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »