如果条件在C++中的for循环中
if condition in a for loop in C++
我目前正在进行一个for循环,该循环显示您的姓名平均得分和但我似乎无法让分数显示出来。
输出
Enter Your Name:
Quiz 1
Quiz 2
Quiz 3
Average
Grade <- this one dont appear its on the if statement in my code
代码
using namespace std;
int main(){
int nos[5][3]; //multi-dimention
int r, c;
char name[20];
int x[3];
int av=0;
char l;
do{
system("cls");
for(r=0; r<5; r++){ //Row
cout<<"Enter Your Name : ";
cin>>name;
for(c=0; c<3; c++){ //Column
cout<<"Enter Quiz "<<"["<<r<<"]"<<"["<<c<<"] : ";
cin>>nos[r][c];
}
cout<<"Average : "<<(float)(nos[r][0]+nos[r][1]+nos[r][2])/3<<endl;
av = ((float)nos[r][0]+nos[r][1]+nos[r][2])/3;
if(av==0 && av<=74.99){
cout<<"grade = 5.0"<<endl; }
if(av ==75 && av<=76.99){
cout<<"grade = 3.0"<<endl; }
if(av ==77 && av<=79.99){
cout<<"grade = 2.75"<<endl; }
if(av ==80 && av<=82.99){
cout<<"grade = 2.50"<<endl; }
if(av ==83 && av<=84.99){
cout<<"grade = 2.25"<<endl; }
if(av ==85 && av<=87.99){
cout<<"grade = 2.0"<<endl; }
if(av ==88 && av<=90.99){
cout<<"grade = 1.75"<<endl; }
if(av ==91 && av<=93.99){
cout<<"grade = 1.50"<<endl;}
if(av ==94 && av<=96.99){
cout<<"grade = 1.25"<<endl; }
if(av ==97 && av<=100){
cout<<"grade = 1.0"<<endl;}
}
cout<<"nTry Another [Y/N] : ";
cin>>l;
} while(l!='N' && l!='n');
getch();
}
您的if
条件错误
使用或(||
)或设置适当的下限。
例如:
if(av==0 && av<=74.99)
你要么说
if(av>=0 && av<=74.99)
或
if(av==0 || av<=74.99)
取决于你的逻辑是什么(我想是前者)。
此外,正如Bill正确指出的那样,您应该使用if else
s,而不是所有这些if
s。尽管它们在您的情况下有效,但if else
s是首选,因为它们可以防止逻辑错误。更好的解释如下:https://stackoverflow.com/a/1796155/2302611
所以你的代码(条件部分)应该看起来像:
if(av>=0 && av<=74.99){
cout<<"grade = 5.0"<<endl;
}
else if(av >=75 && av<=76.99){
cout<<"grade = 3.0"<<endl;
}
else if(av >=77 && av<=79.99){
cout<<"grade = 2.75"<<endl;
}
else if(av >=80 && av<=82.99){
cout<<"grade = 2.50"<<endl;
}
else if(av >=83 && av<=84.99){
cout<<"grade = 2.25"<<endl;
}
else if(av >=85 && av<=87.99){
cout<<"grade = 2.0"<<endl;
}
else if(av >=88 && av<=90.99){
cout<<"grade = 1.75"<<endl;
}
else if(av >=91 && av<=93.99){
cout<<"grade = 1.50"<<endl;
}
else if(av >=94 && av<=96.99){
cout<<"grade = 1.25"<<endl;
}
else if(av >=97 && av<=100){
cout<<"grade = 1.0"<<endl;
}
else cout << "Grade not in bounds";
您的if语句逻辑是错误的,并且int不能用于存储浮点数,以下是代码更改
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
double nos[5][3]; //multi-dimention
int r, c;
char name[20];
int x[3];
double av = 0;
char l;
do{
system("cls");
for (r = 0; r<5; r++){ //Row
cout << "Enter Your Name : ";
cin >> name;
for (c = 0; c<3; c++){ //Column
cout << "Enter Quiz " << "[" << r << "]" << "[" << c << "] : ";
cin >> nos[r][c];
}
av = (nos[r][0] + nos[r][1] + nos[r][2]) / 3;
cout << "Average : " << av << endl;
if (av >= 0 && av <= 74.99){
cout << "grade = 5.0" << endl;
}
if (av >= 75 && av <= 76.99){
cout << "grade = 3.0" << endl;
}
if (av >= 77 && av <= 79.99){
cout << "grade = 2.75" << endl;
}
if (av >= 80 && av <= 82.99){
cout << "grade = 2.50" << endl;
}
if (av >= 83 && av <= 84.99){
cout << "grade = 2.25" << endl;
}
if (av >= 85 && av <= 87.99){
cout << "grade = 2.0" << endl;
}
if (av >= 88 && av <= 90.99){
cout << "grade = 1.75" << endl;
}
if (av >= 91 && av <= 93.99){
cout << "grade = 1.50" << endl;
}
if (av >= 94 && av <= 96.99){
cout << "grade = 1.25" << endl;
}
if (av >= 97 && av <= 100){
cout << "grade = 1.0" << endl;
}
}
cout << "nTry Another [Y/N] : ";
cin >> l;
} while (l != 'N' && l != 'n');
getch();
return 0;
}
using namespace std;
int main(){
int nos[5][3]; //multi-dimention
int r, c;
char name[20];
int x[3];
int av=0;
char l;
do{
system("cls");
for(r=0; r<5; r++){ //Row
cout<<"Enter Your Name : ";
cin>>name;
for(c=0; c<3; c++){ //Column
cout<<"Enter Quiz "<<"["<<r<<"]"<<"["<<c<<"] : ";
cin>>nos[r][c];
}
cout<<"Average : "<<(float)(nos[r][0]+nos[r][1]+nos[r][2])/3<<endl;
av = ((float)nos[r][0]+nos[r][1]+nos[r][2])/3;
if(av==0 || av<=74.99){
cout<<"grade = 5.0"<<endl; }
else if(av ==75 || av<=76.99){
cout<<"grade = 3.0"<<endl; }
else if(av ==77 || av<=79.99){
cout<<"grade = 2.75"<<endl; }
else if(av ==80 || av<=82.99){
cout<<"grade = 2.50"<<endl; }
else if(av ==83 || av<=84.99){
cout<<"grade = 2.25"<<endl; }
else if(av ==85 || av<=87.99){
cout<<"grade = 2.0"<<endl; }
else if(av ==88 || av<=90.99){
cout<<"grade = 1.75"<<endl; }
else if(av ==91 || av<=93.99){
cout<<"grade = 1.50"<<endl;}
else if(av ==94 || av<=96.99){
cout<<"grade = 1.25"<<endl; }
else(av ==97 || av<=100){
cout<<"grade = 1.0"<<endl;}
}
cout<<"nTry Another [Y/N] : ";
cin>>l;
} while(l!='N' && l!='n');
getch();
}
相关文章:
- 如何在C++中从两个单独的for循环中添加两个数组
- 为什么我的for循环不能正确获取argv
- 在基于范围的for循环中使用结构化绑定声明
- 通过for循环使用用户输入填充列表
- 使用for循环检查数组中的重复项
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 正在使用for循环创建QScatterSerie
- Python中的for循环与C++有何不同
- 在更改for循环的第三部分后,未使用for循环结果
- 在 for 循环中查找问题时遇到困难
- 嵌套for循环C++的问题(初学者)
- 如何用for循环在c++中生成单词三角形
- 如何在for循环中包含两个索引值的测试条件
- 带有多个独立参数的C++For循环
- 为什么我的程序在for循环中k=0时返回垃圾值
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- C++-For循环未执行
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- C++ 无法在字符数组中使用 for 循环打印字母模式