我是编程新手,我在学校做运动。对于我被困的下一个程序:
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main() {
int n;
printf("Input the integer number:");
scanf("%d",&n);
int usevar=n;
int count=0;
while(n>1)
{
n/=10;
count++;
}
int sum=0;
printf("Reverse:\n");
for(int i=1;i<=count;i++)
{
int a=pow(10,i);
int b=pow(10,i-1);
sum=(usevar%a-usevar%b)/b;
printf("i=%d\n",sum);
}
return 0;
}
当我插入一些诸如12345
之类的int号时,输出应为:
反向:
i=5
i=4
i=3
i=2
i=1
但是我的程序输出是:
反向:
i=5
i=4
i=3
i=2
但是当我输入数字时没有&#39; 1&#39;作为起始编号,我的程序正常工作:
输入整数:23556
反向:
i=6
i=5
i=5
i=3
i=2
那么以&#39; 1&#39;开头的号码的问题是什么?任何人都可以给我这个建议吗?如果你能提供帮助,我很高兴。
答案 0 :(得分:2)
这来自你的第一个循环。尝试:
while(n >= 1)
{
n/=10;
count++;
}
答案 1 :(得分:0)
试试这个,
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main() {
int n;
printf("Input the integer number:");
scanf("%d",&n);
while(n > 0){
int rev = n%10;
n = n/10;
printf("i = %d\n",rev);
}
}