我想獲得一個程序打印出一個明星,根據使用哪個數字輸入,例如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");
}
我已經學習了大約一個星期,所以我真的不知道編碼正確,如果不是這樣的話,那麼是有可能通過readExamMarks將counter1和counter2作爲參數傳遞給printHisto? – Thomas 2013-04-06 11:30:23
@Thomas,不僅僅是因爲readExamMarks不會調用printHisto。兩者都從main調用。正如我在上面解釋的,你需要使用引用來實現你想要的。 – john 2013-04-06 11:32:52
謝謝,這對我有幫助。 – Thomas 2013-04-06 11:43:58