c语言,任意输入一个五位正整数,逆序输出每一位上的数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言,任意输入一个五位正整数,逆序输出每一位上的数相关的知识,希望对你有一定的参考价值。

c语言,任意输入一个五位正整数,逆序输出每一位上的数如输入54321 输出12345输入12300
输出321

#include <stdio.h>
void main()

int i,n,a[5];
scanf("%d",&n);
for(i=0;i<5;i++)
a[i]=n%10;n=n/10;
for(i=0;i<5;i++)
if(a[i])

for(;i<5;i++)
printf("%1d",a[i]);
break;

运行示例:

参考技术A 这是一个用C语言编写的程序,可以实现任意输入一个五位正整数,逆序输出每一位上的数。程序的思路是用一个变量n存储输入的数,然后用一个循环和取余运算依次获取n的个位、十位、百位、千位和万位,并输出到屏幕上。
//引入stdio.h头文件,用于输入输出#include <stdio.h>//定义主函数int main() //声明一个变量n,用于存储输入的数
int n; //声明一个变量i,用于循环控制
int i; //提示用户输入一个五位正整数,并将其赋值给n
printf("请输入一个五位正整数:\n"); scanf("%d", &n); //判断n是否为五位正整数,如果不是,则提示错误并退出程序
if (n < 10000 || n > 99999)
printf("输入错误!\n"); return 0;
//输出逆序后的结果
printf("逆序后的结果为:\n"); //用For循环遍历5次,每次获取并输出n的最低一位,并将其去掉
for (i = 0; i < 5; i++)
printf("%d", n % 10); //取余运算得到最低一位
n /= 10; //除以10去掉最低一位
printf("\n"); //换行

return 0;
参考技术B 可以通过对输入的数字不断地进行除和取余运算,来逆序输出每一位上的数。

以下是 C 语言代码示例:

```c
#include <stdio.h>

int main()
int num, digit;

printf("请输入一个五位正整数:");
scanf("%d", &num);

printf("逆序输出每一位上的数:");
while (num > 0)
digit = num % 10; // 取个位数字
printf("%d", digit);
num /= 10; // 去掉个位数字


return 0;

```

该代码中,首先使用 `scanf` 函数读入一个五位正整数。然后使用循环从该数的个位开始,依次取出每一位数字并逆序输出。在循环中,使用 `%` 运算符取出个位数字,使用 `/` 运算符去掉个位数字。注意,为了避免输出中的前导零,需要判断数字是否为零。
参考技术C 除以10000就是万位的数字,以此类推进行输出,望采纳 参考技术D #include<stdio.h>
void main() int a,b;
scanf("%d",&a); b=0;
while ( a ) b*=10; b+=a%10; a/=10;
printf("%d\n",b);

C语言程序求解

给一个不多于5位的正整数,按要求给出结果。
要求:
1)求出它是几位数;2)按正序分别打印出每一位数字;3)按逆序打印出每一位数字;4)询问用户是否继续输入。
答题要求:
1)编写一个函数求出它是几位数int fun1(int num),要求在主函数中根据函数返回值输出信息。
2)编写一个函数按正序分别打印出每一位数字;要求不能直接将整数输出,应分别取出每位数字输出;
3)编写一个函数按逆序打印出每一位数字;
4)以上两个函数推荐原型为void fun2(int num,int n),第一个参数为正整数,第二个参数为正整数的位数,直接在函数里面输出结果;
5)编写main函数,输入正整数num,先后调用3个函数。
6)在main函数中询问用户是否继续输入。

#include<stdio.h>
#include<windows.h>
void OutReverse(int num,int n) //反序输出

int i,j;
for(i=1,j=1;i<=10000 && j<=n;i*=10,j++)
printf("%d ",num/i%10);
printf("\\n");

void OutJust(int num,int n) //正序输出

int i=1,j;
for(j=0;j<n-1;j++)
i=i*10;
for(;i>=1;i/=10)
printf("%d ",num/i%10);
printf("\\n");

int fun1(int num) //返回整数的位数

if((num/10000)>=10) return(-1);else
if((num/10000%10)>=1) return(5);else
if((num/1000%10)>=1) return(4);else
if((num/100%10)>=1) return(3);else
if((num/10%10)>=1) return(2);else
if((num/1%10)>=1) return(1);else
return(0);


main()

int i,ws;
int p;
while(1)

p=0;
printf("输入数字:");
scanf("%d",&i);
ws=fun1(i);
printf("%d\\n",ws); //调用求位数
OutReverse(i,ws); //调用反序
OutJust(i,ws); //调用正序
printf("继续输入: Y(y) 结束输入任意键:\\n");
scanf("%d",&p);
if(p==1) system("cls");
else exit(0);

参考技术A #include <stdio.h>
#include <string.h>

int fun1(int num)

char tmp[10];
sprintf(tmp,"%d",num);
return strlen(tmp);


void fun2(int num,int n)

char tmp[10];
long i;
sprintf(tmp,"%d",num);
for(i=0;i<n;++i)
printf("%c",tmp[i]);
printf("\n");
for(i=n-1;i>=0;--i)
printf("%c",tmp[i]);
printf("\n");


int main()

char c;
long num,ws;
be:
scanf("%d",&num);
ws=fun1(num);
printf("%d\n",ws);
fun2(num,ws);
printf("Continue?Y\\N");
while(1)

c=getchar();
if(c=='N' || c=='n')
return 0;
else if(c=='y' || c=='Y')
goto be;

参考技术B 我是新手,不懂

以上是关于c语言,任意输入一个五位正整数,逆序输出每一位上的数的主要内容,如果未能解决你的问题,请参考以下文章

给定一个不多于5位的正整数,求它是几位数并且按逆序分别输出每一位数字的C语言程序如何编写?

给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数

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

2.给一个不多于5位的正整数,要求: ①求出它是几位数; ②分别输出每一位数字 ③按逆序输出各位数字。

编程将任意一个4位正整数逆序输出,要求不输出前导0

C语言:任意输入一个三位整数,然后逆序输出。如123变为321。