使用最大值功能可打印出成绩数组中的最大值。
使用最小值功能可打印出成绩数组中的最小值
使用字母等级功能为阵列中的每个分数打印出等级编号和相关的字母等级。这将需要嵌套的if-then else语句来解决。
以上就是我应该做的。但是我似乎无法弄清楚它的第三部分。任何帮助都很棒
头文件:
#ifndef UTILITIES_H
#define UTILITIES_H
void show_grades(int data[], int num_values);
void show_max(int data[], int num_values);
void show_min(int data[], int num_values);
#endif
utilities.cpp:
#include <iostream>
#include "utilities.h"
using namespace std;
void show_grades(int data[], int num_values) {
for(int i = 0 i < num_values; i++)
cout << data[i] << endl;
}
void show_max (int data[], int num_values) {
for (int i = 0; i < num_values; i++){
if(data[0] < data[i])
data[0] = data[i];
cout << "Largest Element = " << data[0];
return 0;
}
}
void show_min (int data[], int num_values) {
for (int i = 0; i < num_values; i++){
if(data[0] > data[i])
data[0] = data[i];
cout << "Smallest Element = " << data[0];
return 0;
}
}
void letter_grade (int data[], int num_values) {
for (int i = 0; i < num_values; i++){
//// STUCK PLEASE HELP
}
}
grader.cpp:
#include "utilities.h"
#include <iostream>
void show_grades(int data[], int num_values);
int main(int argc, char * argv[]){
int grades[15] = {
55, 87, 93, 77, 92, 88, 67, 81, 84, 73, 81, 92, 89, 100, 62
};
show_grades(grades, 15);
}
答案 0 :(得分:2)
问:你能告诉我为什么我的功能坏了吗?
A:因为他们不执行您想要的事情(告诉您数组中的最小值或最大值)。
// BAD:
void show_max (int data[], int num_values) {
for (int i = 0; i < num_values; i++){
if(data[0] < data[i])
data[0] = data[i];
cout << "Largest Element = " << data[0];
return 0;
}
}
问题:
data[0]
?您不想保存吗?return
... INSIDE ?您是否知道无需完成循环即可退出整个功能?0..num_values
?这是一个可能的选择:
// BETTER:
int get_max (int data[], int num_values) {
int max = data[0];
for (int i = 1; i < num_values; i++){
if(data[i] > max)
max = data[i];
cout << "Current max = " << max << endl;
}
return max;
}
强烈建议:
熟悉调试器(例如MSVS>调试,gdb:任何可用的调试器)。
使用调试器始终单步执行您编写的 ANY 新代码...,以确保它确实在执行您的 INTENDED < / em>。