想要得到反位数,我这个代码输入12345,输出为什么只有5啊
[](
```c
#include
int main()
{
int a,b,m;
m=0;
printf("输入一个正整数\n");
scanf("%d",&a);
if(a<=0)
printf("输入有误\n");
do
{
b=a%10;
m=m*10+b;
a=a/10;
}while(a<=0);
printf("%d",m);
return 0;
}
```)
不知道你这个问题是否已经解决, 如果还没有解决的话:(此结构较少使用,因为应用场景是至少执行一次循环)
在循环语句中使用break跳出循环,使用continue跳转到表达式的判断,表达式为真才继续循环。
例如:下面的代码将打印10到6,然后进入死循环。
#include<stdio.h>
int main()
{
int i = 10;
do
{
if (5 == i)
continue;
printf("%d\n", i);
i--;
} while (i < 10);
return 0;
}
给你改了改试试
#include <stdio.h>
int main() { // main 函数开头应该加 {
int a, b, m;
m = 0; // 0 的英文单词是 "zero" 而不是 "O"
printf("输入一个正整数n:"); // 冒号应该放在引号内
scanf("%d", &a);
if (a <= 0) {
printf("输入有误\n"); // \n 表示换行
return 0; // 如果输入有误就直接退出程序
}
do {
b = a % 10;
m = m * 10 + b;
a = a / 10;
} while (a > 0); // 如果 a <= 0,就一次也不会进入循环
printf("%d\n", m); // 记得换行
return 0;
}
while循环判断条件错了
#include<stdio.h>
int main()
{
int a,b,m;
m=0;
printf("输入一个正整数\n");
scanf("%d",&a);
if(a<=0)
{
printf("输入有误\n");
return 0;
}
do
{
b=a%10;
m=m*10+b;
a=a/10;
}while(a>0);
printf("%d",m);
return 0;
}