首页 > 软件 > 要求从键盘上输入一个不多于5位数的正整数,依次输出每一位数字(从低位到高位依次输出

要求从键盘上输入一个不多于5位数的正整数,依次输出每一位数字(从低位到高位依次输出

软件 2022-11-29

c语言程序编写:要求从键盘上输入一个不多于5位数的正整数,依次输出每一位数字?

#include

void main()

{

int n;

scanf("%d",&n);

if(n/100000)

printf("应输入一个不多于5位数的正整数!\n");

else

{

printf("%d",n%10);

n/=10;

while(n)

{

printf(",%d",n%10);

n/=10;

}

}

}


编写程序:输入一个不多于五位数的正整数,要求顺序输出它的每一位数

从高位到低位分解输出正整数,参考代码如下: #include int main() { long n; int a[5],m=0,i; scanf("%ld",&n); if(n<=0||n>99999) return 0; while(n!=0){ a[m++]=n%10; n/=10; } for(i=0;i用C语言编程:给一个不多于5位的正整数,要求如下:

不对的原因,主要是if条件语句应该是用“==”而不是“=”,这是判断,不是赋值。其它的错误,scanf_s("%d",&a)改成scanf("%d",&a),printf用错了,printf打印应该是一个占位符对应一个要输出的内容,就是你代码中%d对应一个输出。

修改后的代码:

#include

int main()

{

int a, b, c, d, e, f, w;

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

scanf("%d",&a);

//第一问,求出它是几位数

b = 10000 - a;

c = 1000 - a;

d = 100 - a;

e = 10 - a;

f = 0 - a;

while (a < 0 || a > 99999)

printf("输入错误,请重新输入\n");

if (b < 0)

{

printf("a是五位数\n");

w = 5;

}else if (c < 0){

printf("a是四位数\n");

w = 4;

}else if (d < 0){

printf("a是三位数\n");

w = 3;

}else if (e < 0){

printf("a是两位数\n");

w = 2;

}else if (f < 0){

printf("a是个位数\n");

w = 1;

}else

printf("输入错误,请重新输入\n");

//第二问,分别输出每一位数字

if (w == 5)

printf("%d %d %d %d %d\n", a / 10000, a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);

if (w == 4)

printf("%d %d %d %d\n", a / 1000 % 10, a / 100 % 10, a / 10 % 10, a % 10);

if (w == 3)

printf("%d %d %d\n", a / 100 % 10, a / 10 % 10, a % 10);

if (w == 2)

printf("%d %d\n", a / 10 % 10, a % 10);

if (w == 1)

printf("%d\n", a % 10);

//第三问,按逆序输出各位数字

if (w == 5)

printf("%d %d %d %d %d\n", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10, a / 10000);

if (w == 4)

printf("%d %d %d %d\n", a % 10, a / 10 % 10, a / 100 % 10, a / 1000 % 10);

if (w == 3)

printf("%d %d %d\n", a % 10, a / 10 % 10, a / 100 % 10);

if (w == 2)

printf("%d %d\n", a % 10, a / 10 % 10);

if (w == 1)

printf("%d\n", a % 10);

}

修正后的代码执行如下:

编写程序:输入一个不多于五位数的正整数,要求:输出它的位数;顺序输出它的每一位数;逆序输出它的位数

#include
intmain()
{intx,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;jprintf("\n");
return0;
}

编写程序,输入一个不多于5位的正整数,要求: 输出它是几位数; 分别输出每一位?

你上面这个代码并不符合题目要求,首先一般算长度是依次除10直到0来算的,二是题目要分别输出每一位,并不是要逆序输出。 至于你这上面的逆序本身也写错了,按你上面的就是 for(i=lax; i>=0; printf("%c ",ax[--i])); 逆序的原理就是itoa(n,ax,10)将整数n转成了字符数组,存在ax中,比如n是1024,那在ax中从ax[0]到ax[3]存的就是'1'、'0'、'2'、'4'这四个字符,lax是这个字符数组的长度4,之后在for中将i初始值设置为lax(即4),每次--i来依次输出ax[3]、ax[2]、ax[1]、ax[0]就是逆序了。

标签:编程 信息技术 CC++ C(编程语言) 编程语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18