我应该写代码,我要问学生3个测试分数在1到100之间,如果它显示的数字超出该范围,它应该显示无效,否则,我会显示学生的平均值和字母等级。我有两个程序组合的问题,以使这个程序工作,这是两部分:
第1部分:
char grade;
double Test_1,Test_2,Test_3,Avg;
cout<<"Please enter your three test scores";
cin>>Test_1>>Test_2>>Test_3;
Avg=((Test_1+Test_2+Test_3)/3.0);
if(Avg<65)
{
grade= 'F';
}
else if(Avg<70)
{
grade= 'D';
}
else if(Avg<80)
{
grade= 'C';
}
else if(Avg<90)
{
grade= 'B';
}
else
{
grade='A';
}
第2部分:
//Program to compute and display the average and appropriate letter grade of
3 test scores
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
double Test_1,Test_2,Test_3,ClassAvg1,ClassAvg2,ClassAvg3;
int sumTest_1,sumTest_2,sumTest_3;
int n;
sumTest_1=0=sumTest_2=sumTest_3;
const int totalSum=5.0;
for(n=1;n<=5;n++)
{
do
{
cout<<"What are the three test scores for student #"<<n;
cin>>Test_1>>Test_2>>Test_3;
}
while(Test_1<1||Test_1>100||Test_2<1||Test_2>100||Test_3<1||Test_3>100);
{
sumTest_1=sumTest_1+Test_1;
sumTest_2=sumTest_2+Test_2;
sumTest_3=sumTest_3+Test_3;
ClassAvg1=sumTest_1/5.0;
ClassAvg2=sumTest_2/5.0;
ClassAvg3=sumTest_3/5.0;
}
}
}
答案 0 :(得分:1)
代码中唯一的错误是这一行:
sumTest_1=0=sumTest_2=sumTest_3;
应该是:
sumTest_1=sumTest_2=sumTest_3=0;
使用||你的工作条件没问题操作员,因为条件(Test_1&lt; 1&amp;&amp; Test_1&gt; 100)将始终是错误的并且永远不会离开循环。你不能同时拥有一个小于1且大于100的数字,你可以吗?
答案 1 :(得分:0)
while循环的条件有误。您必须使用&&
运算符而不是||
-
do{
//your code
}while( (Test_1<1 || Test_1>100) && (Test_2<1 ||Test_2>100) && (Test_3<1 || Test_3>100) );