我试图写的代码,将列出和反转所有数字对从01 - 99。01-09很容易,因为你只需要把它乘以10,我也知道至少有一种方法可以逆转一个给定的数字,我只是不知道如何正确地使用它和for循环。
这就是我到目前为止所拥有的。
for ( int num99 =1 ; num99 > 0 && num99 < 100; num99 = num99+1)
{
if (num99 <10){
temp99 = num99 * 10;
cout << temp99 << endl;
}
else {
while (num99 != 0) {
remainder99 = num99 % 10;
reverse99 = (reverse99 * 10) + remainder99;
num99 = num99 / 10;
}
cout << reverse99 << endl;
}
}谢谢你的帮助。
发布于 2018-09-26 05:16:18
您必须在使用remainder99, reverse99, temp99, num99值之后重新初始化它们。
当你倒转10,20,30等的时候,你也必须把0加到结果的前面。得到01,02,03等.
在进行了必要的更改之后,您的程序将如下所示。
#include<iostream>
using namespace std;
int main(void)
{
int remainder99 = 0;
int reverse99 = 0;
int temp99 = 0;
for ( int num99 =1 ; num99 > 0 && num99 < 100; num99 = num99+1)
{
if (num99 <10){
temp99 = num99 * 10;
cout << temp99 << endl;
}
else {
temp99 = num99;
while (num99 != 0) {
remainder99 = num99 % 10;
reverse99 = (reverse99 * 10) + remainder99;
num99 = num99 / 10;
}
if(reverse99 < 10) cout << 0;
cout << reverse99 << endl;
reverse99 = 0;
remainder99 = 0;
num99 = temp99;
}
}
return 0;
}产出如下:
10
20
30
40
50
60
70
80
90
01
11
21
31
41
51
61
71
81
91
02
12
22
32
42
52
62
72
82
92
03
13
23
33
43
53
63
73
83
93
04
14
24
34
44
54
64
74
84
94
05
15
25
35
45
55
65
75
85
95
06
16
26
36
46
56
66
76
86
96
07
17
27
37
47
57
67
77
87
97
08
18
28
38
48
58
68
78
88
98
09
19
29
39
49
59
69
79
89
99发布于 2018-09-26 05:16:07
您要做的是尝试对循环变量进行操作,这会导致意外的结果。相反,将循环变量和num99变量分开,如下所示:
for (int i = 1; i < 100; i++) {
int num99 = i;
if (num99 < 10) {
temp99 = num99 * 10;
cout << temp99 << endl;
} else {
remainder99 = num99 % 10;
num99 = num99 / 10;
if (remainder99 == 0) {
cout<<"0"<<num99<<endl;
} else {
reverse99 = remainder99 * 10 + num99;
cout << reverse99 << endl;
}
}
}我还冒昧地假设,当您反转10、20等两位数时,您希望输出是01,02,这样,如果这不是您所期望的,您可以删除if条件。
发布于 2018-09-26 05:19:30
提到的代码有很多问题,如
reverse99 * 10,reverse99的初始值是什么?将其分配为0。num99 = num99 / 10;您正在修改原始的num99,它是外部循环变量,而不是将num99分配给一些临时变量&使用这个临时变量执行操作。样本码
int main(void) {
int temp99 = 0,remainder99 = 0, reverse99 = 0/* must initialize with 0 */ ;
for ( int num99 =1 ; num99 > 0 && num99 < 100; num99 += 1) {
if (num99 <10){
temp99 = num99 * 10;
std::cout << num99 << std::endl;
}
else {
reverse99 = 0;/*make it as 0 again for every iteration */
temp99 = num99; /* assign loop variable to temp99 & do the operation with that */
while (temp99 != 0) {
remainder99 = temp99 % 10;
reverse99 = (reverse99 * 10) + remainder99;
temp99 /= 10;
}
std::cout << reverse99 << std::endl;
}
}
return 0;
}https://stackoverflow.com/questions/52510214
复制相似问题