「PAT乙级真题解析」Basic Level 1107 老鼠爱大米 (问题分析+完整步骤+伪代码描述+提交通过代码)
题设给定多组数值, 要求分别输出每组数中的最大值, 以及输出全部数值的最大值。so easy.
#算法#数据结构#c语言#需求分析#pat考试
Table of Contents
乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
PAT (Basic Level) Practice 1107 老鼠爱大米
问题分析
题设给定多组数值, 要求分别输出每组数中的最大值, 以及输出全部数值的最大值。so easy.
完整描述步骤
- 获取输入: 小组数量, 小组规模
- 初始化计数器:
- 小组最重
- 全体最重 = 0
- 对于每一个小组:
- 重置 小组最重 值为 = -1
- 获取输入: 各个小组成员的体重
- 对于每一个体重:
- 如果当前体重大于当前小组最重:
- 更新小组最重 = 当前体重
- 如果当前体重大于当前小组最重:
- 输出小组最重
- 如果当前小组最重大于当前全体最重:
- 更新全体最重 = 当前小组最重
- 输出全体最重
伪代码描述
- get input: group_amont, group_size
- init recorder:
- weight_group_champion
- weight_final_champion = -1
- for each group:
- weight_group_champion = -1;
- get input: weights
- for each weight:
- if weight > weight_group_champion:
- weight_group_champion = weight
- if weight > weight_group_champion:
- print(weight_group_champion)
- if weight_group_champion > weight_final_champion:
- weight_final_champion = weight_group_champion;
- print(weight_final_champion)
完整提交代码
/*
# 问题分析
题设给定多组数值, 要求分别输出每组数中的最大值, 以及输出全部数值的最大值。so easy.
# 完整描述步骤
1. 获取输入: 小组数量, 小组规模
2. 初始化计数器:
- 小组最重
- 全体最重 = 0
3. 对于每一个小组:
- 重置 小组最重 值为 = -1
- 获取输入: 各个小组成员的体重
- 对于每一个体重:
- 如果当前体重大于当前小组最重:
- 更新小组最重 = 当前体重
- 输出小组最重
- 如果当前小组最重大于当前全体最重:
- 更新全体最重 = 当前小组最重
4. 输出全体最重
# 伪代码描述
1. get input: group_amont, group_size
2. init recorder:
- weight_group_champion
- weight_final_champion = -1
3. for each group:
- weight_group_champion = -1;
- get input: weights
- for each weight:
- if weight > weight_group_champion:
- weight_group_champion = weight
- print(weight_group_champion)
- if weight_group_champion > weight_final_champion:
- weight_final_champion = weight_group_champion;
4. print(weight_final_champion)
*/
# include<stdio.h>
int main(){
int group_amont, group_size;
scanf("%d %d", &group_amont, &group_size);
int weight_group_champion;
int weight_final_champion = -1;
int weight;
for (int i = 0; i < group_amont; i++){
weight_group_champion = -1;
for (int j = 0; j < group_size; j++){
scanf("%d", &weight);
if (weight > weight_group_champion){
weight_group_champion = weight;
}
}
if (i > 0){
printf(" ");
}
printf("%d", weight_group_champion);
if (weight_group_champion > weight_final_champion){
weight_final_champion = weight_group_champion;
}
}
printf("\n%d", weight_final_champion);
return 0;
}