编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)按逆序输出各位数字。

#include <stdio.h>
void main()
{
int a,b,x;
printf("输入一个不多于五位的正整数:");
scanf("%d",&a);
while(x!=0);
{x=x/10;
a++;
}
scanf("%d",&b);
b=x/100+x%10*100+x/10%10*10;
printf("输出位数:%d\n,逆序数为:%d\n",a,b);
}
这个程序正确吗?错在哪里?

错的太多了。请仔细比对:

#include <stdio.h>

void main()

{

int n=0,b=0,x;

printf("输入一个不多于五位的正整数:");

scanf("%d",&x);

while(x!=0)

{

n++;

b=b*10+x%10;

x=x/10;

}

printf("输出位数:%d,逆序数为:%d\n",n,b);

getch();

}

追问

为什么得不到结果

追答

void main()
{
int a,b,x;
printf("输入一个不多于五位的正整数:");
scanf("%d",&a); //输入的是a
while(x!=0); //判断的是x,末尾还多一了个分号,导致死循环
{x=x/10;
a++; //把a自增,有什么作用?岂不是有几万位?
}
scanf("%d",&b); //这里还读一个数,作什么用?
b=x/100+x%10*100+x/10%10*10; //这好像只能处理3位数?
printf("输出位数:%d\n,逆序数为:%d\n",a,b);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-01
帕斯卡:

变种A,S,I:Longint型;

B:数组整数[5 .. 1];

(一); BR /> B [1]:=一模10;

B [2]:=一个div 10模10;

B [3]:=一格100模10;

b [4]:=一格1000 MOD 10;

B [5]:=一格1000;

对于i:= 15做

当b [I] > 0,INC(次);

写(次);

对于i:= S DOWNTO 1做

写(二由[i]);

对于i:。 = 1到来做

写(二由[i]);
我是学pascal的,有问题请找我
第2个回答  2014-03-31

            int 数字 = 58369;/*质(素)数、歌德巴赫、梅森质数、完美数等均需取数之各位处理。*/

            int[] 位数组 = new int[数字.ToString().Length];/*获取任意数各位。*/

            foreach (int 序 in Enumerable.Range(0, 位数组.Length))

                位数组[序] = int.Parse(数字.ToString()[序].ToString());/*虽然几经转换,处理语句简单多了。*/

            Console.WriteLine(位数组.Length);

            Console.WriteLine(string.Concat(位数组));

            Console.WriteLine(string.Concat(位数组.Reverse()));

第3个回答  2014-03-31
pascal:

var a,s,i:longint;
b:array[1..5] of integer;
begin
read(a);
b[1]:=a mod 10;
b[2]:=a div 10 mod 10;
b[3]:=a div 100 mod 10;
b[4]:=a div 1000 mod 10;
b[5]:=a div 1000;

for i:=1 to 5 do
if b[i]<>0 then inc(s);
write(s);
for i:=s downto 1 do
write(b[i]);
for i:=1 to s do
write(b[i]);
end.

我是学pascal的,有问题欢迎来找我~

编写程序,输入一个不多于5位的正整数,要求:(1)输出它是几位数; (2...
} printf("\\n顺序输出:\\n");for(int j = count-1;j>=0;j--){ printf("%d ",arr[j]);} } int main(){ int n = 0;printf("请输入n的值(0-99999):\\n");scanf("%d",&n);if(n<0||n>99999){ printf("输入错误!\\n");return 1;} printf("位数:");printf("%d\\n"...

c语言编程:给一个不多于5位的正整数,要求(1)求出它是几位数(2)分别输 ...
include <stdio.h>\/\/无误及时采纳回答 int main(){int n;int count=0,i,a[5];printf ("输入一个不多于5位正整数(0~99999):\\n");scanf("%d",&n);if (n<=0 || n>=100000){printf ("输入的数不合法\\n");}else{while(1){a[count]=n%10;n=n\/10;if(n==0){break;}count...

输入一个不多于5位的正整数 1 求出它是几位数 2 分别输出每一位数 3...
输入一个不多于5位的正整数,要求:1 求它是几位数;2 分别输出每一位数字;3 按逆序输出各位数字。例如原数为321,应输出123。include<stdio.h>#include<math.h>void main(){long int num;int a,b,c,d,e,place;printf("please input a number(0--99999):%d\\n",num);scanf("%ld",&...

编写程序:输入一个不多于五位数的正整数,要求:输出它的位数;顺序输出它...
include<stdio.h>int main(){ int x,i,j,a[12]; printf("输入一个正整数:\\n"); scanf("%d",&x); for(i=0;x;x\/=10)a[i++]=x%10; printf("它是%d位数\\n",i); for(j=i-1;j>=0;j--)printf("%d ",a[j]); printf("\\n"); for(j=0;j...

C语言编程:给一个不多于5位的正整数,要求编程实现(1)求它是几位数?(2...
long int a;int n,b,c,d,e,f;printf("\\n请输入一个整数(0~99999):");scanf("%d",&a);if(a>9999)n=5;else if(a>999)n=4;else if(a>99)n=3;else if(a>9)n=2;else n=1;printf("\\n这个数的位数=%d",n);f=a\/10000;e=a%10000\/1000;d=a%10000%1000\/100;c=a%...

给一个不多于5位的正整数,要求编程实现(1)求它是几位数?(2)逆序输出各...
vz=pi*r*r*h; \/\/计算圆柱体积vz printf("圆周长为: l=%6.2f\\n",l); printf("圆面积为: s=%6.2f\\n",s); printf("圆球表面积为: sq=%6.2f\\n",sq); printf("圆球体积为: v=%6.2f\\n"

C程序 给一个不多于5位的正整数,要求: 、求出它是几位数 、分别输出每...
include<stdio.h> void main(){ int num;printf("请输入一个不多于5位的数:");scanf("%d",&num);printf("逆序输出为:");while(num>0){ printf("%d",num%10);num\/=10;} printf("\\n");}

输入一个不多于5位的正整数,要求 1求出它是几位数 2分别打印每一位数字...
可以是可以,不过太麻烦了,见下面的代码 include <stdio.h> int main() { int a, b[5], s = 0;scanf("%d", &a);while (a) { b[s++] = a % 10;a \/= 10;} printf("%d\\n", s);int i;for (i = s-1; i >= 0; i--) { printf("%d ", b[i]);} printf("\\n...

输入一个不多于5位的正整数,要求:1)求它是几位数;2)合成它的逆序数并...
cout<<"请输入一个不多于五位的正整数:";cin>>num; \/\/ 输入数据 if (cin.bad() || num <= 0 || num >= 100000){ \/\/ 如果输入的不是整数,或者小于0,或者大于5位数,报错重试 cin.clear();fflush(stdin);cout<<"输入错误!请重试!"<<endl;continue;} break;} \/\/ 逆序处理,...

给1个不多于5位的正整数要求1求出它是几位数2分别打印出每一位数字3...
b[2]=(a%1000)\/100;\/\/百位\/\/ b[1]=(a%10000)\/1000;\/\/千位\/\/ b[0]=(a\/10000);\/\/万位\/\/ for(;flag>0;flag--){ printf("%d\\t",b[flag-1]);\/\/从个位开始输出\/\/ \/\/printf("%d\\t",b[5-flag]);\/\/从高位开始输出\/\/ } printf("\\n");} 不知道你逆序的意思,所以在输出...

相似回答