心得12

今天,又重新复习了结构体部分的知识。

结构体就像是我们大学生活中的各种社团组织,每个组织都有自己的成员和特点,而结构体也是用来组织不同类型的数据,让它们更有条理地存储和使用。比如,我们可以用结构体来表示一个学生的信息,包括姓名、学号、年龄等。通过结构体,我们可以很方便地对学生的信息进行管理和操作。

另外,结构体还可以嵌套使用,就像社团组织中的各种部门一样,可以有不同层次的组织结构。这样我们就可以更加灵活地组织和管理数据。

通过复习结构体相关的知识,我们可以更好地理解和运用它们,就像是在整理自己的社团活动一样,让我们的程序更有条理、更高效!希望大家都能在复习中有所收获,加油!

题目描述

输入n个学生的姓名和三科(编程,数学,英语)的成绩,按照三科的总分从高到低排序输出姓名和总分,如果总分相同,姓名按照字典序排序输出。

输入描述:

共n + 1行,

第一行,一个整数n(1 < n <100),

接下来的n行,每行输入一个字符串,长度小于100,表示姓名,接下来空一个格,输入三个整数,用空格隔开,表示三科成绩。

输出描述:

共n行,按照三科的总分从高到低排序输出姓名和总分,每行输出一个姓名和总分,用空格分隔。

#include <stdio.h>

#include <string.h>

struct student

{

char name[1000];

int f1, f2, f3;

};

int main()

{

int n;

scanf("%d", &n);

struct student kk[n];

for (int i = 0; i < n; i++)

{

scanf("%s%d%d%d", kk[i].name, &kk[i].f1, &kk[i].f2, &kk[i].f3);

}

int sum[10000] = {0};

for (int i = 0; i < n; i++)

{

sum[i] = kk[i].f1 + kk[i].f2 + kk[i].f3;

}

for (int i = 0; i < n - 1; i++)

{

for (int j = 0; j < n - i - 1; j++)

{

if (sum[j] < sum[j + 1] || (sum[j] == sum[j + 1] && strcmp(kk[j].name, kk[j + 1].name) > 0))

{

int temp = sum[j];

sum[j] = sum[j + 1];

sum[j + 1] = temp;

char tempName[1000];

strcpy(tempName, kk[j].name);

strcpy(kk[j].name, kk[j + 1].name);

strcpy(kk[j + 1].name, tempName);

}

}

}

for (int i = 0; i < n; i++)

{

printf("%s %d\n", kk[i].name, sum[i]);

}

return 0;

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-22 11:33
点赞 评论 收藏
分享
写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务