您的位置:首页 > 编程语言 > C语言/C++

用C语言编程:给一个不多于5位的正整数,要求如下: 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

2019-03-14 21:35 2541 查看
#include<stdio.h>
int main()
{
int a,b,c,d,e;
int num,n;
int p;
printf("请输入一个0-99999的正整数:");
scanf("%d",&num);
if(num>99999&&num<0)
printf("输入错误");
else if(num>9999)
n=5;
else if(num>999)
n=4;
else if(num>99)
n=3;
else if(num>9)
n=2;
else if(num>0)
n=1;
printf("\n输入的数字是%d位数\n",n);
a=num/10000;
b=(num-a*10000)/1000;
c=(num-a*10000-b*1000)/100;
d=(num-a*10000-b*1000-c*100)/10;
e=num-a*10000-b*1000-c*100-d*10;
printf("每一位数字为:%d,%d,%d,%d,%d\n",a,b,c,d,e);
printf("数字逆序为:%d%d%d%d%d",e,d,c,b,a);
return 0;
}

C的基础有点差,写出来代码很糙,只是能单纯的解决问题而已;
这个也是自己的作业,做出来就直接贴过来了;
这也是我自己第一次写博客,有了更优的解决办法再改,以后慢慢进步。

#include<stdio.h>
#include<math.h>

int GetFigures(int n)
{
int count  = 0;
if(n == 0)
{
return 1;
}
do
{
count++;
n /= 10;
}while(n != 0);
return count ;
}

void PrintOrder(int n)
{
int a=GetFigures(n);
int i;
int b;
i=pow(10.0,a-1);
while(n!=0)
{
b=n/i;
printf("%d\n",b);
n%=i;
i/=10;
}
printf("\n");
}

void PrintfReverse(int n)
{
while(n!=0)
{
printf("%d",n%10);
n/=10;
}
printf("\n");
}

int main()
{
int n;
int a;
printf("请输入数字\n");
scanf("%d",&n);
printf("\n");
a = GetFigures(n);
printf("这个数字是%d位数\n\n",a);
printf("各个数位是\n");
PrintOrder(n);
printf("逆序输出:\n ");
PrintfReverse(n);
return 0;
}

修改了自己的代码,上面的代码就作为一个警醒的作用留着,以后的博客中不会出现这种代码。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐