最好的我们! 2024-02-20 16:37 采纳率: 50%
浏览 7
已结题

打印从1到最大n位数

输入数字 n,使用C语言按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。

  1. 用返回一个整数列表来代替打印
  2. n 为正整数,0 < n <= 5.
    以下做法为什么错误?

int* printNumbers(int n, int* returnSize ) {
    
    int max = 0;
    while (n)  
    {
        max = max * 10 + 9;
        n--;
    }
    *returnSize = max;
    int* a = (int*)malloc(*returnSize* sizeof(int));
    for (int i =1; i<=(*returnSize); i++)
    {
        *a=i;
        a++;
    }
    
    return a;

}

  • 写回答

5条回答 默认 最新

  • qzjhjxj 2024-02-20 16:55
    关注

    修改如下,改动处见注释,供参考:

    #include <stdio.h>
    #include <stdlib.h>
    
    int* printNumbers(int n, int* returnSize) {
    
        int max = 0;
        while (n)
        {
            max = max * 10 + 9;
            n--;
        }
        *returnSize = max;
        int* a = (int*)malloc(*returnSize * sizeof(int));
        int* b = a;  // 修改
        for (int i = 1; i <= (*returnSize); i++)
        {
            *a = i;
            a++;
        }
        return b;  // 修改
    }
    
    int main()
    {
        int n = 2, * a, m;
        a = printNumbers(n, &m);
        for (int i = 0; i < m; i++) {
            printf("%d ", *a);
            a++;
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 创建了问题 2月20日

悬赏问题

  • ¥100 对接美团闪购医药接口相关问题
  • ¥15 嵌入式软件电子烟开发
  • ¥15 职场 Excel 查重问题
  • ¥20 multisim方波发生电路产生的波形异常,学校没讲模电就留了实验qwq
  • ¥15 求怎么用idea2021.3.2创建web项目并配置tomcat
  • ¥100 or-tools的相关问题
  • ¥15 有可能用平板通过拓展坞来烧录程序吗(keil5的那种)
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决