2015-04-16 2 views
0

Я должен написать код, где я должен задать студенту 3 теста, которые находятся между 1 и 100, если он отображает номер из этого диапазона, он должен отображаться неверно, иначе , Я бы отобразил среднее число учеников и письмо. У меня возникли проблемы, объединяющие две программы для того, чтобы сделать эту программу работы, эти 2 части:Confused with my do-while loop program

Часть 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; 
     } 
    } 
} 
+1

В чем проблема? – kaylum

+2

Из вашего синтаксиса кажется, что у вас есть непонимание того, как использовать циклы do-while. Скобки после 'while (...);' ничего не делают. – scohe001

ответ

0

Существует неправильное в состоянии цикла while. Вы должны использовать && оператор вместо || -

do{ 
    //your code 
}while((Test_1<1 || Test_1>100) && (Test_2<1 ||Test_2>100) && (Test_3<1 || Test_3>100)); 
+1

Невозможно, чтобы оба в паре были истинными одновременно, '&&' не имеет абсолютно никакого смысла здесь. –

+0

Как можно «Test_1» быть меньше, чем «1» и «100» одновременно? Условие цикла while было просто прекрасным. –

1

только неправильно в вашем коде эта линия:

sumTest_1=0=sumTest_2=sumTest_3; 

Оно должно быть:

sumTest_1=sumTest_2=sumTest_3=0; 

Ваш сделай, а условия отлично с || операторы, поскольку условие (Test_1 & Test_1> 100) всегда будет ошибкой и никогда не выйдет из цикла. Вы не можете иметь число, которое меньше 1 и больше 100 одновременно, может у?