需要帮助计算 a、b、c、d 和 f 的实例
Need help counting the instances of a's, b's, c's, d's, and f's
我必须计算分数数组中A, B, C, D和F的实例,但我不知道如何做到这一点。score1,score2和score3数组包含整数,所以我想我需要使用if语句来比较分数,但我不确定我将如何计数并显示它。我读了我的整本书,搜索了这个网站和其他网站,但找不到任何帮助我的东西。下面是我的代码:
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
int getAverage(int,int,int);
string letterGrade(int);
void getInfo();
int main(int argc, char *argv[]) {
getInfo();
system("PAUSE");
return EXIT_SUCCESS;
}
void getInfo() {
const int info = 5;
string last[info];
string first[info];
int ID[info];
int score1[info];
int score2[info];
int score3[info];
for (int count = 0; count < info; count++) {
cout << "last namen";
cin >> last[count];
cout << "first namen";
cin >> first[count];
cout << "enter IDn";
cin >> ID[count];
cout << "enter test 1n";
cin >> score1[count];
cout << "enter test 2n";
cin >> score2[count];
cout << "enter test 3n";
cin >> score3[count];
}
cout << endl;
for (int count = 0; count < info; count++) {
cout << last[count]
<< setw(10) << first[count]
<< setw(10) << ID[count]
<< setw(10) <<score1[count]
<< setw(10) << score2[count]
<< setw(10) << score3[count]
<< setw(10) << getAverage(score1[count],score2[count],score3[count])
<< setw(10) << letterGrade(getAverage(score1[count],score2[count],score3[count]));
cout << endl;
}
}
string letterGrade(int average) {
string lGrade;
if (average > 89)
lGrade = "A";
else if (average > 79 && average < 90)
lGrade = "B";
else if (average > 69 && average < 80)
lGrade = "C";
else if (average > 59 && average < 70)
lGrade = "D";
else if (average >= 0 && average < 60)
lGrade = "F";
return lGrade;
}
int getAverage(int score1,int score2,int score3) {
int average;
average = ((score1 + score2 + score3)/ 3);
return average;
}
我不是百分之百确定您想要做什么,但我想说的是,只需为numa、numb、numc、numd和numf创建变量,并在第二个for循环之前将它们设置为0。然后在调用letterGrade时适当地增加数字,如下所示:
int numAs = 0, numBs = 0, numCs = 0, numDs = 0, numFs = 0;
// ..
if (average > 89){
lGrade = "A";
numAs++;
}
else if (average > 79 && average < 90){
lGrade = "B";
numBs++;
}
else if (average > 69 && average < 80){
lGrade = "C";
numCs++;
}
else if (average > 59 && average < 70){
lGrade = "D";
numDs++;
}
else if (average >= 0 && average < 60){
lGrade = "F";
numFs++;
}
return lGrade;
// ..
然后在for循环之后,只计算分数:
cout << "Number of As: " << numAs << endl;
cout << "Number of Bs: " << numBs << endl;
cout << "Number of Cs: " << numCs << endl;
cout << "Number of Ds: " << numDs << endl;
cout << "Number of Fs: " << numFs << endl;
int gradeCounts[5];
// ..
if (average > 89) {
lGrade = "A";
gradeCounts[0] = gradeCounts[0] + 1;
} else if (average > 79 && average < 90){
lGrade = "B";
gradeCounts[1] = gradeCounts[1] + 1;
} else if (average > 69 && average < 80){
lGrade = "C";
gradeCounts[2] = gradeCounts[2] + 1;
} else if (average > 59 && average < 70){
lGrade = "D";
gradeCounts[3] = gradeCounts[3] + 1;
} else if (average >= 0 && average < 60){
lGrade = "F";
gradeCounts[4] = gradeCounts[4] + 1;
}
return lGrade;
我知道你的作业是 c++ ,我的(部分)答案是C,但我认为无论如何都值得分享,以告诉你有不同的方法可以达到相同的结果。例如,您可能对调整我的letter_grade()
函数感兴趣,它使用常见的"过早返回"习惯用法,而不是if-else if-else
序列。
#include <stdio.h>
#include <stdlib.h>
#define N_SCORES (100)
char letter_grade(int score) {
if(score > 100 || score < 0) {
return (char)0;
}
if(score > 85) return 'A';
if(score > 70) return 'B';
if(score > 55) return 'C';
if(score > 40) return 'D';
return 'F';
}
int main(void) {
int histogram['F'-'A'+1] = {0};
char letter;
int score;
int i;
for(i=0; i<N_SCORES; i++) {
score = rand() % 101;
letter = letter_grade( score );
if( letter == 0 ) {
fprintf(stderr, "Ignored invalid score (%d)n", score);
continue;
}
histogram[ letter - 'A' ]++;
}
for(letter='A'; letter<='F'; letter++) {
if( letter=='E' )
continue;
printf("Number of %c grades: %2dn", letter,
histogram[letter-'A']);
}
return 0;
}
相关文章:
- 从C++实例化QML
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 如何在c++中为模板函数实例创建快捷方式
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 需要帮助设置在C++中使用的Potrace
- 设计一个只能由特定类实例化的类(如果可能的话,通过make_unique)
- 在指针的帮助下,文本文件中单词的频率
- 如何创建一个空的全局类并在启动时实例化它
- 无法创建抽象类的实例
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 我收到以下错误:抛出'std::bad_alloc'实例后终止调用
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 帮助错误 C2259:无法实例化抽象类
- 需要帮助清理模板实例化框架
- 需要帮助理解luabind如何实例化类
- 需要关于模板类实例化的帮助
- 需要帮助计算 a、b、c、d 和 f 的实例