1

使用者が入力した数字に基づいて星を印刷するプログラムを取得しようとしています。たとえば、10-20 = 1 などの数字です。私の問題は、印刷を次のように機能させる方法がわからないことです。現時点では何も出力されません。誰でも助けることができます。

コード:

void readExamMarks(int examMarks[], int sizeOfArray, int counter1, int counter2){

cout << "Please enter a set of exam marks to see a histogram for:" << endl;
int x = 0;

for( int idx = 0; idx < sizeOfArray; idx++){
    cin >> x;
     if((x >=0) && (x <= 100)){
            x = x/10;

            switch(x){
            case 1:
                counter1++;

                break;
            case 2:
                counter2++;
                break;

            }

            examMarks[idx] = x;
        }
             else{
             cout << "ERROR: Value must be in range [0...100], please    enter a valid value\n"; 
         }
}
}


void printExamMarks(int examMarks[], int sizeOfArray){

for(int x = 0; x < sizeOfArray; x++){

    cout << setw(5) << examMarks[x];
}
cout << endl;
}

void printHisto(int examMarks[], int sizeOfArray,int counter1, int counter2){
system("cls");

while(counter1 != 0){
    cout << "*" << endl;
    counter1--;
}
for( int x = 0; x < counter1; x++){
cout << setw(5) << "*" << endl;
}
 }

int main() 
{ 
int examMarks[20];
int counter1 = 0;
int counter2 = 0;

readExamMarks(examMarks, 5, counter1, counter2);
printHisto(examMarks, 5, counter1, counter2);
printExamMarks(examMarks,5);


system("PAUSE");
}
4

2 に答える 2

0
printHisto(examMarks, 5, counter1, counter2);

何も出力しません理由は、counter1 と counter2 が 0 で初期化されており、それらがそのまま printHisto(...) に渡されます。私の推測では、readExamMarks(...) で counter(1,2) を変更するつもりです。 、その場合は、ref http://www.cplusplus.com/doc/tutorial/functions2/で渡します

于 2013-04-06T11:33:13.810 に答える