sunflower759 2022-10-12 23:08 采纳率: 75%
浏览 33
已结题

用数组和循环知识,转移零元素

把给定长度为10的数组所有零元素后移,非零元素顺序不变。(一直显示运行超时)

img

  • 写回答

1条回答 默认 最新

  • [Pokemon]大猫猫 2022-10-12 23:11
    关注
    #include <stdio.h>
    #define N 10
    
    int main()
    {
        int a[N], i, j, u, m;
        for (i = 0; i < N; i++)
        {
            scanf("%d", &a[i]);
        }
    
        u = 0;
        m = 0;
        while (u < N && m < N)
        {
            //找0
            while (a[u] != 0 && u < N)
                u++;
    
            //找非0
            m = u + 1;
            while (a[m] == 0 && m < N)
                m++;
    
            //互换
            if (u < N && m < N)
            {
                j = a[u];
                a[u] = a[m];
                a[m] = j;
            }
        }
    
        for (i = 0; i < N; i++)
        {
            printf("%d ", a[i]);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 修改了问题 10月12日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了