使用循环语句在 C 中练习:编写代码以使用 do-while 语句反转数字
Exercise in C with loop statements: Write code to reverse numbers with do-while statement
我有一个任务(目前正在研究循环语句,所以我处于初学者阶段)要求编写一个程序来反转整数,因此它必须具有 do
语句。
输出应该是(例子):
Enter a number: 4568
The reversal is: 8654
请记住,由于到目前为止我一直在关注我的书,所以我已经学习并了解了非常基础的知识 + 选择和循环语句。我的选择非常有限,所以 no 数组。
这本书建议制作一个 do 循环,将数字重复除以 10
,直到达到 0
这是我目前所做的(代码未完成):
int main(void)
{
int n,x;
printf("Enter a number: ");
scanf("%d", &n);
printf("The reversal is: ");
x = n % 10;
printf("%d",x); /*outputs the last number digit in the first place*/
do{
....
n /= 10; /* for example if I divide the number 56222 by ten the output would come out as
5622 562 56 5*/
....
}while (n!=0);
return 0;
}
如您所见,我找到了一种将最后一位数字放在首位的方法,但是
在用这个非常有限的选择将数字除以 10 之后,我正在努力弄清楚如何反转其余数字。
我应该在 do 语句中输入什么?
非常感谢。
int main(void)
{
int n,x;
printf("Enter a number: ");
scanf("%d", &n);
printf("The reversal is: ");
int rev = 0;
do{
x = n % 10;
rev = rev * 10 + x;
n /= 10;
}while (n!=0);
printf ("%d", rev);
return 0;
}
here you need a new integer rev whose value is 0 initially. Lets take
example of 432
n = 432
when you do x = n % 10 x = 2
so when you do rev = rev * 10 + x rev is 0 and value of rev will be 2
n /= 10 make n = 43
-->so in the next iteration
n = 43
x = n % 10 results in x = 3
rev value now is 2
so rev = rev * 10 + x results in 2 * 10 + 3
so rev = 23
n /= 10 results in n = 4
-->in the last iteration n = 4
x = n % 10 results in x = 4 rev value now is 23
so rev = rev * 10 + x results in 23 * 10 + 4 so rev = 234
n /= 10 results in n = 0
so when you print rev you get the answer 234 reverse of 432
我有一个任务(目前正在研究循环语句,所以我处于初学者阶段)要求编写一个程序来反转整数,因此它必须具有 do
语句。
输出应该是(例子):
Enter a number: 4568 The reversal is: 8654
请记住,由于到目前为止我一直在关注我的书,所以我已经学习并了解了非常基础的知识 + 选择和循环语句。我的选择非常有限,所以 no 数组。
这本书建议制作一个 do 循环,将数字重复除以 10
,直到达到 0
这是我目前所做的(代码未完成):
int main(void)
{
int n,x;
printf("Enter a number: ");
scanf("%d", &n);
printf("The reversal is: ");
x = n % 10;
printf("%d",x); /*outputs the last number digit in the first place*/
do{
....
n /= 10; /* for example if I divide the number 56222 by ten the output would come out as
5622 562 56 5*/
....
}while (n!=0);
return 0;
}
如您所见,我找到了一种将最后一位数字放在首位的方法,但是 在用这个非常有限的选择将数字除以 10 之后,我正在努力弄清楚如何反转其余数字。
我应该在 do 语句中输入什么? 非常感谢。
int main(void)
{
int n,x;
printf("Enter a number: ");
scanf("%d", &n);
printf("The reversal is: ");
int rev = 0;
do{
x = n % 10;
rev = rev * 10 + x;
n /= 10;
}while (n!=0);
printf ("%d", rev);
return 0;
}
here you need a new integer rev whose value is 0 initially. Lets take example of 432
n = 432
when you do x = n % 10 x = 2
so when you do rev = rev * 10 + x rev is 0 and value of rev will be 2
n /= 10 make n = 43
-->so in the next iteration
n = 43 x = n % 10 results in x = 3
rev value now is 2
so rev = rev * 10 + x results in 2 * 10 + 3
so rev = 23
n /= 10 results in n = 4
-->in the last iteration n = 4 x = n % 10 results in x = 4 rev value now is 23
so rev = rev * 10 + x results in 23 * 10 + 4 so rev = 234
n /= 10 results in n = 0
so when you print rev you get the answer 234 reverse of 432