C语言题目--PrintAndReverseDigits

临近期末,诚邀您和我一起复习这道经典的题目

从键盘输入一个不多于4位的整数,要求用函数实现

1.求出它是几位数

2.顺序打印出每一位的数字(高位到低位)

3.按逆序打印每一位的数字(低位到高位)

话不多说,上代码

#include <stdio.h>

int main() 
{
    int num, j = 0;
    int arr[4];
    int i;

    
    printf("请输入一个不大于4位的整数: ");
    scanf("%d", &num);

    
    if (num < 0 || num > 9999) 
    {
        printf("输入的数字不在0到9999之间。\n");
        return 1;
    }//程序要求输入一个不多于4位的整数,int类型中可以理解为数字在0~9999之间。return 1表示输出错误信息,并且返回1表示程序出错

    
    do 
    {
        arr[j++] = num % 10;//num%10得到num的最后一位数字,然后储存到arr[j]中,每一次循环后j+1,++在j后面表示先使用再增加1
        num /= 10;//num = num / 10,等于去掉最后一位的数字,可以自己举例计算验证
    } while (num > 0);//num>0的时候继续进行循环,因为是int类型,个位数 / 10 等于0,除到最后一位的时候循环结束
    
   
    
  

 详解do-while循环:
    //假设输入1234
    //第一轮循环,arr[0] = 1234 % 10;  arr[0]=4
    // num = 1234 / 10 = 123
    // 循环结束后j++,j=1
    //第二轮循环,arr[1] = 123 % 10;   arr[1]=3
    // num = 123 /10 = 12
    // 循环结束后j++,j=2
    //第三轮循环,arr[2] = 12 % 10;    arr[2]=2
    // num = 12 / 10 = 1
    // 循环结束后j++,j=3
    //第四轮循环,arr[3] = 1 % 10;     arr[3]=1;
    // num = 1 / 10 = 0
    // 循环结束后j++,j=4

    printf("位数: %d\n", j);//此时j就成为了 位数

    
    printf("各位上的数字: ");
    for (i = j - 1; i >= 0; i--) //顺序输出各位数,从最高位置开始打印到最低位
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    
    printf("逆向输出各位上的数字: ");//逆序输出各位,从最低为打印到最高位
    for (i = 0; i < j; i++) 
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}

上述代码中详细讲解了该题目中的重难点 do-while循环和“++”操作符的使用实例

希望对你的学习有帮助!

祝您期末稳过,早日成为编程大牛
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值