一维数组{0,1,0,2,3},如何遍历数组并实现输出1,0,2,3和3,2,0,1?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

一维数组{0,1,0,2,3},如何遍历数组并实现输出1,0,2,3和3,2,0,1?

2016-06-07 21:07:04 2531 1

原题是这样的:
输入一个五位以内(含五位)的正整数
(1)判断它是一个几位数;
(2)请按序输出其各位数字;
(3)逆序输出其各位数字。
要求:使用指针
如输入:56439,
输出:
五位数
5,6,4,3,9
9,3,4,6,5
我已经实现输入数据,判断位数,并将每一位存到一个数组中。因为事先不知道用户要输入几位,所以数组按照有可能输入的最大数来定义,即输入五位数,,定义一个长度为5的数组a[5],把每一位装进数组中。但是假如用户输入了小于5位数的,并且这个数的中间有某一位是0,比如1004,那么这个时候数组各元素为{0,1,0,0,4},我的问题是:如何能按照题意,输出1,0,0,4 和4,0,0,1 ?

下面是我的代码段:

#include <stdio.h>

int main(int argc, const char * argv[]) {

    unsigned long n = 0;

    //输入一个数

    while (1) {

        printf("Input a number(0~9999): \n");

        scanf("%lu", &n);

        if (n > 0 && n < 100000) {

            break;
        }
    }

    //判断是几位数
    //每一位存入数组
    int i = 0;

    int a[5] = {0};

    int *p = &a[4];

    while (n != 0) {

        *p = n % 10;

        n /= 10;

        i++;
        p--;
    }

    printf("\ndigit:%d\n\n",i);

    //遍历数组,输出元素
    for (int i = 0; i < 5; i++) {

        printf("%d ", a[i]);
    }

    printf("\n");

    //倒序输出元素
    for (int i = 4; i >= 0; i--) {

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

    }

    printf("\n");

    return 0;
}
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:31:02

    题主已经将1004解析成了{0, 1, 0, 0, 4}数组,然后遇到的问题是第一个占位的0(其实代表没有该位)与后面的有效0(该位上的数据为0)无法区分。题主只需将占位符换成一个其他的唯一含义字符便可消除0的二义性了。比如

    // 用PLACEHOLDER填充数组,输出时过滤掉PLACEHOLDER位
    #define PLACEHOLDER    0xff
    0 0
相关问答

1

回答

将a数组中的数依次取出分别与b数组中的数挨个相加得到新的数组再输出新数组的和

2016-03-06 14:54:47 1444浏览量 回答数 1

1

回答

将a数组中的数依次取出分别与b数组中的数挨个相加得到新的数组再输出新数组的和

2016-03-23 13:30:21 1386浏览量 回答数 1

1

回答

sql数据类型decimal(18, 2) 转换decimal(18, 3)

2016-06-16 17:37:22 4006浏览量 回答数 1

1

回答

JAVA编程。0实现对数组25.24.12.76.101.96.28排序。使用冒泡排序法

2018-07-16 12:26:52 1448浏览量 回答数 1

1

回答

JAVA编程实现对数组{25.24.12.76.101.96.28}的排序。使用冒泡排序算法

2018-07-17 19:48:05 4290浏览量 回答数 1

2

回答

编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和

2020-02-12 16:09:50 2837浏览量 回答数 2

1

回答

99. 为什么 0.1 + 0.2 != 0.3?如何解决这个问题?

2020-04-06 15:38:46 546浏览量 回答数 1

1

回答

怎样才可以实现[‘1’,’2’,’3’]变成[1,2,3] 呢?

2021-10-31 17:43:11 294浏览量 回答数 1

1

回答

Numpy数组导向编程如何用where函数实现编程?

2022-07-22 10:07:58 131浏览量 回答数 1

1

回答

如何降低分布式系统的实现难度并提高进程间的通信?

2022-09-12 14:14:03 123浏览量 回答数 1
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载