社区讨论
求个大佬求调球球了
P1051[NOIP 2005 提高组] 谁拿了最多奖学金参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj3yjee
- 此快照首次捕获于
- 2025/11/03 20:20 4 个月前
- 此快照最后确认于
- 2025/11/03 20:20 4 个月前
C
#include<stdio.h>
#include<stdlib.h>
typedef struct {
char name[20];
int mark;
int comment;
char senior;
char west;
int essay;
int credit;
int j;
}person;
int main() {
int n, sum = 0;
scanf("%d", &n);
getchar();
char b;
person *pupil=(person*)malloc(n*sizeof(person));
if (!pupil) return 0;
for (int i = 0; i < n; i++) {
pupil[i].credit = 0;
pupil[i].j = 0;
while ((b = getchar()) != ' ')
pupil[i].name[pupil[i].j++] = b;
scanf("%d%d", &pupil[i].mark, &pupil[i].comment);
scanf(" %c %c %d", &pupil[i].senior, &pupil[i].west, &pupil[i].essay);
getchar();
if (pupil[i].mark > 80 && pupil[i].essay >= 1)
pupil[i].credit += 8000;
if (pupil[i].mark > 85 && pupil[i].comment > 80)
pupil[i].credit += 4000;
if (pupil[i].mark > 90)
pupil[i].credit += 2000;
if (pupil[i].mark > 85 && pupil[i].west == 'Y')
pupil[i].credit += 1000;
if (pupil[i].comment > 80 && pupil[i].senior == 'Y')
pupil[i].credit += 850;
sum += pupil[i].credit;
}
int t=pupil[0].credit;
int x=0;
for (int i = 1; i < n; i++)
if (pupil[i].credit > t) {
t = pupil[i].credit;
x = i;
}
for (int i = 0; i < pupil[x].j; i++)
printf("%c", pupil[x].name[i]);
printf("\n");
printf("%d\n%d", pupil[x].credit, sum);
free(pupil);
pupil = NULL;
return 0;
}
感觉是在输入或者输出环节出了问题
回复
共 0 条回复,欢迎继续交流。
正在加载回复...