输入一个几位数字,输出各个位数、统计共有几位数、输出逆序数

输入一个几位数字,输出各个位数、统计共有几位数、输出逆序数

用数组来做会更方便

代码如下

include<stdio.h>

int main()

{

    int num, count,tmp,tmp1;

    int a[5];

    printf("请输入不多于五位的正整数:\n");

    scanf_s("%d",&num);

    tmp = num;

    for (count = 0; count < 5; count++)

    {

         a[count] = 0;

    }

    for (count=0;num;count++)

    {

         a[count] = num % 10;

         num /= 10;

    }

    printf("%d是%d位数\n",tmp,count);

    tmp1 = count;

    printf("各个位数是:");

    for (count--; count>=0; count--)

    {

         printf("\t%d",a[count]);

    }

    printf("\n逆序数是:");

    for (count=0;count<=tmp1-1;count++)

    {

         printf("%d",a[count]);

    }

    return 0;

}

使用数组的话,首先我们要有一个变量来记数,输入数字我们必须要有一个变量,可能的话我们还需要若干个变量来暂时保存变量里的数值,不要忘了我们还要对数组进行定义和初始化,好了,就暂时先定义那么多变量,不够的话我们可以回过头来补充。

int num, count,tmp

定义好变量后,我们要进行一些互动、输入数字和数组初始化。

int a[5];

    printf("请输入不多于五位的正整数:\n");

    scanf_s("%d",&num);

    tmp = num;

    for (count = 0; count < 5; count++)

    {

         a[count] = 0;

    }

对数组进行初始化后,我们要使用这个数组,具体是把这个数字的每位数字放到数组里面每个元素那里去,对这个数用10进行取余可以得出最末尾位的数字并用数组保存,接着用10进行整除就可以把末尾的位数消掉,要一直保存进数组的每个元素里就要用到循环

for (count=0;num;count++)

    {

         a[count] = num % 10;

         num /= 10;

    }

要输出各个位数的话,就要从下标最大的数组元素开始输出(因为读进数组里的是从那个数的个位数开始读),输出要注意题目的格式;如若要输出逆序数就要从下标为0开始。要注意数组是从下标为0开始的,要多考虑下标和数量的关系。善用变量保存前面会变化,而后面可能用到变化前的值的变量里的数值。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值