【发布时间】:2017-04-15 18:43:04
【问题描述】:
编写一个程序,要求用户输入最多 10 个整数(可能更少);当用户输入零时停止提示。然后以相反的顺序列出数字。使用以下示例运行作为指导:
Enter a number (0 to stop): 11
Enter a number (0 to stop): 33
Enter a number (0 to stop): 55
Enter a number (0 to stop): 77
Enter a number (0 to stop): 99
Enter a number (0 to stop): 0
Your numbers in reverse order are:
99, 77, 55, 33, 11
以下是我当前的代码,似乎无法弄清楚我做错了什么。
#include <iostream>
#include <string>
using namespace std;
int main( ) {
int max = 10;
int num = 1;
int userVal[max];
int i = 0;
while(num <= max) {
cout << "Enter a number (0 to stop): ";
cin >> userVal[i];
cout << userVal[i] << endl;
if(userVal[i] == 0) {
break;
}
++num;
}
cout << num << endl;
cout << "Your numbers in reverse order are: " << endl;
for(i = num; i >= 0; --i) {
cout << userVal[i];
if(i < num - 2) {
cout << ", ";
}
}
return 0;
}
下面是我得到的输出,如上所述,我想反向打印数字
Enter a number (0 to stop): 11
Enter a number (0 to stop): 33
Enter a number (0 to stop): 55
Enter a number (0 to stop): 77
Enter a number (0 to stop): 99
Enter a number (0 to stop): 0
6
Your numbers in reverse order are:
6553532600-6638791760, 4197268, 0, 0,
【问题讨论】:
-
你永远不会在你的第一个
while中增加i,你也可以只增加num - 1。 -
旁注,不要使用
using namespace std;。 -
for 循环也进行了一次迭代。