一道很适合复习函数定义的题,包含一维数组和简单逻辑判断
任务描述
本关任务:编写一个能根据学生号码来输出对应成绩的小程序。
编程要求
实数个数为5(人数为5),注意成绩由程序员赋值为:65,79, 98, 87, 83。 输入用户指定的学生的号码(1-5),输出对应的成绩,当用户输入为0时程序结束。
要求:用户输入、查找成绩并输出都在函数中实现。 提示:函数原型 void check(int x[], int N);
效果如下: 输入: 3
3
3
3
0
输出: 98
98
98
98
【审题时间】
1.成绩由程序员赋值 -> 自己预先定义数组 >> 要把数组定义在主函数里,因为check函数只负责逻辑的处理,不需要给定具体值
2.输出0时程序结束 -> 0时必须强制退出,不能有任何返回值 >> 因为是取数组值,如果不加这个条件系统会随机返回一个值,所以一定要条件break
3.输入、查找和输出都在check函数中实现 -> 主函数中不需要cin or cout or 判断 >> 在check函数中都做完,只要调用一次,系统就会自动运行并完成输入-判断-输出的整个过程
【上代码】
#include<iostream>
using namespace std;
void check(int x[],int N);
int main()
{
int n;
int score[5]={65,79,98,87,83};
//审题1
check(score,n);
//审题3 简单粗暴地直接调用,其他事情都交给check函数来搞定吧~
//这里有个我自己遇到的小坑:check函数的格式是(数组,数字),所以逗号前的位置只要写数组的名字就可以了,不需要加中括号(可能只有我一个人会搞错吧 捂脸逃跑
}
void check(int x[],int N)
{
do{cin>>N;
if(N==0)break;
//审题2
else {cout<<x[N-1]<<endl;}
}while(N!=0 && N>=1 && N<=5);
//do-while变体
//选择用do-while语句而不是if,因为用户可能输入多个值,只要在范围内都需要系统给出返回值,所以需要循环操作而不是只做一次
}
//华丽谢幕