使用do while循环,将一个正整数中数字的顺序翻转过来
比如,原来是 12345 转换后 是54321
算法是
把这个数 12345
r = 0;
12345 % 10 后 得 1234 余 5
然后 让余数 r*10+5 保持到一个变量 r
然后 在让1234 %10 得 123 余 4
然后让r*10 + 4 得 54 保存到r
然后 在让123 %10 得 12 余 3
然后让r*10 + 3 得 543
然后 在让12 %10 得 1 余 2
然后让r*10 + 2 得 5432
然后 在让1 %10 得 0 余 1
然后让r*10 + 1 得 54321
当商为0的时候 就停止循环int main(void)
{
int number = 0; /* The number to be reversed */
int rebmun = 0; /* The reversed number */
int temp = 0; /* Working storage */
/* Get the value to be reversed */
printf(“\n输入一个正整数: “);
scanf(” %d”, &number);
temp = number; /* Copy to working storage */
/* Reverse the number stored in temp */
do
{
rebmun = 10*rebmun + temp % 10; /* Add the rightmost digit */
temp = temp/10; /* Remove the rightmost digit */
}
while (temp); /* Continue while temp>0 */
printf (“\n这个数 %d 翻转后是 %d \n”,
number, rebmun );
return 0;
}
这个程序 do while是最适合的。因为 任何数都至少有一位数字。用驱魔运算符%除以10的余数,可以得到最右边的数字。
任何非零整数都会转换为true,布尔值false对应0
我们的例子#include
int main(void)
{
int number = 0;
printf(“\n输入一个正整数: “);
scanf(“%d”, &number);
int r = 0;
int s = 0;
do
{
s = number / 10;
r = r*10 + number % 10;
number = s;
}while(number!=0);
printf(“%d”,r);
return 0;
}