生活随笔
收集整理的這篇文章主要介紹了
PAT | 1004 成绩排名 (C语言)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1004 成績排名 (20 分)
讀入 n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。
輸入格式:
每個測試輸入包含 1 個測試用例,格式為
第 1 行:正整數(shù) n
第 2 行:第 1 個學生的姓名 學號 成績
第 3 行:第 2 個學生的姓名 學號 成績
… … …
第 n+1 行:第 n 個學生的姓名 學號 成績
其中姓名和學號均為不超過 10 個字符的字符串,成績?yōu)?0 到 100 之間的一個整數(shù),這里保證在一組測試用例中沒有兩個學生的成績是相同的。
輸出格式:
對每個測試用例輸出 2 行,第 1 行是成績最高學生的姓名和學號,第 2 行是成績最低學生的姓名和學號,字符串間有 1 空格。
輸入樣例:
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
輸出樣例:
Mike CS991301
Joe Math990112
/* 用結(jié)構(gòu)體實現(xiàn) */
#include <stdio.h>typedef struct
{ /* 最多10個字符加上'\0' */char name[11];char id[11];int score;
}Stu;int main ()
{ int i = 0;int val = 0;Stu max, min, temp;max.score = -1;min.score = 101;if(scanf("%d", &val)!=EOF){for (i=0; i<val; i++){if(scanf ("%s %s %d", temp.name, temp.id, &temp.score)!=EOF){if (temp.score < min.score){min = temp;} if (temp.score > max.score){max = temp;} }elsereturn -1;}printf ("%s %s\n",max.name, max.id);printf ("%s %s\n",min.name, min.id);return 0;}return -1;
}
/* 用結(jié)構(gòu)體指針實現(xiàn) */
#include <stdio.h>
#include <stdlib.h>typedef struct
{ /* 最多10個字符加上'\0' */char name[11];char id[11];int score;
}Stu,*pStu;int main ()
{ int i = 0;int val = 0;pStu max, min, temp;/* 申請內(nèi)存 */max = (pStu)malloc(sizeof(Stu));min = (pStu)malloc(sizeof(Stu));temp = (pStu)malloc(sizeof(Stu));max->score = -1;min->score = 101;if(scanf("%d", &val)!=EOF){for (i=0; i<val; i++){if(scanf ("%s %s %d", temp->name, temp->id, &temp->score)!=EOF){if(temp->score < min->score){*min = *temp;//min = temp會發(fā)生錯誤} if(temp->score > max->score){*max = *temp;} }elsereturn -1;}printf ("%s %s\n",max->name, max->id);printf ("%s %s\n",min->name, min->id);/* 釋放內(nèi)存 */free(max);free(min);free(temp);/* 避免野指針 */max = NULL;min = NULL;temp = NULL; return 0;}return -1;
}
總結(jié)
以上是生活随笔為你收集整理的PAT | 1004 成绩排名 (C语言)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。