C语言编程,任意输入一个五位正整数,逆序输出每一位上的数 如输入54321 输出12345 要代码
5个回答
展开全部
#include <stdio.h>
int res[5] = {}; //外部变量 , 把每一位作为数组元素进行存储
int *p = res;
int main(){
int num = 12345;
void ser(int);//分别输出每一位数字
ser(num);
printf("\n");
p = res + 4; //指针置于数组末尾
for(int i=0; i<sizeof(res)/sizeof(res[0]); i++){ //逆序输出
printf("%d ", *p--);
}
return 0;
}
void ser(int number){
if(number > 9){
ser(number/10); //递归
}
printf("%d ", number % 10); //顺序输出
*p = (int)number % 10;
p++;
}
/*
程序的输出顺序为 10 -> 8 -> 6 -> 4 -> 2
递归步骤解释
1: 第一次执行ser函数,numbser = 12345判断数字大于9,将int(1234)再次执行函数 ps: (int)/(int) 结果为int
2: 待执行ser函数后,输出结果个位数 12345 % 10 = 5
3: 第二次执行ser函数....类比步骤1
4: 待递归执行ser函数,类比步骤2,输出十位个数 1234 % 10 = 4
5: 类比步骤1
6: 类比步骤2,输出百位个数 123 % 10 = 3
7: 类比步骤1
8: 类比步骤2,输出千位 12 % 10 = 2
9: 类比步骤1
10: number值为1,不再递归,直接输出万位 1 % 10 = 1
*/如有帮助,请点赞支持原创QVQ
推荐于2017-10-03
展开全部
#include<stdio.h>
void fun()
{
int n,n1=0;
scanf("%d",&n);
while(n)
{
n1= n1*10+n%10;
n=n/10;
}
printf("%d\n",n1);
}
int main()
{
fun();
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main(void)
{
int,i,a[5];
for(i=0;i<5;i++)
{
scanf("%d",a[i]);
}
for(i=4;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
int main(void)
{
int,i,a[5];
for(i=0;i<5;i++)
{
scanf("%d",a[i]);
}
for(i=4;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int a,b,c1,c2,c3,c4,c5;
printf('请输入一个5位以内的正整数(0~99999):');
scanf(']',&a);
c1 = a % 10;
c2 = (a - c1) % 100 / 10;
c3 = (a - c1 - c2 * 10) % 1000 / 100;
c4 = (a - c1 - c2 * 10 - c3 * 100) % 10000 / 1000;
c5 = (a - c1 - c2 * 10 - c3 * 100 - c4 * 1000) % 100000 / 10000;
if(a < 10)
b = 1;
else if(a < 100)
b = 2;
else if(a < 1000)
b = 3;
else if(a < 10000)
b = 4;
else b = 5;
switch(b)
{
case 1:
printf('%d\n',c1);
printf('%d%\n',c1);
break;
case 2:
printf('%d,%d\n',c2,c1);
printf('%d%d\n',c1,c2);
break;
case 3:
printf('%d,%d,%d\n',c3,c2,c1);
printf('%d%d%d\n',c1,c2,c3);
break;
case 4:
printf('%d,%d,%d,%d\n',c4,c3,c2,c1);
printf('%d%d%d%d\n',c1,c2,c3,c4);
break;
case 5:
printf('%d,%d,%d,%d,%d\n',c5,c4,c3,c2,c1);
printf('%d%d%d%d%d\n',c1,c2,c3,c4,c5);
break;
}
}
void main()
{
int a,b,c1,c2,c3,c4,c5;
printf('请输入一个5位以内的正整数(0~99999):');
scanf(']',&a);
c1 = a % 10;
c2 = (a - c1) % 100 / 10;
c3 = (a - c1 - c2 * 10) % 1000 / 100;
c4 = (a - c1 - c2 * 10 - c3 * 100) % 10000 / 1000;
c5 = (a - c1 - c2 * 10 - c3 * 100 - c4 * 1000) % 100000 / 10000;
if(a < 10)
b = 1;
else if(a < 100)
b = 2;
else if(a < 1000)
b = 3;
else if(a < 10000)
b = 4;
else b = 5;
switch(b)
{
case 1:
printf('%d\n',c1);
printf('%d%\n',c1);
break;
case 2:
printf('%d,%d\n',c2,c1);
printf('%d%d\n',c1,c2);
break;
case 3:
printf('%d,%d,%d\n',c3,c2,c1);
printf('%d%d%d\n',c1,c2,c3);
break;
case 4:
printf('%d,%d,%d,%d\n',c4,c3,c2,c1);
printf('%d%d%d%d\n',c1,c2,c3,c4);
break;
case 5:
printf('%d,%d,%d,%d,%d\n',c5,c4,c3,c2,c1);
printf('%d%d%d%d%d\n',c1,c2,c3,c4,c5);
break;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询