快乐打码 2022-11-10 13:12 采纳率: 71.4%
浏览 32
已结题

请问我哪错了,这样写不对吗?要怎么改正才可以得到想要的结果

7-4 简化的插入排序
本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

输入格式:
输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。

输出格式:
在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。

输入样例:
5
1 2 4 5 7
3
输出样例:
1 2 3 4 5 7

#include <stdio.h>
#define N 11

int main() {
    int n, i, x, j, k;
    scanf("%d", &n);
    int arr[n];
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    scanf("%d", &x);
    for (i = 0; i > n - 1; i++) {
        if (x < arr[i]) {
            k = i;
            arr[i + 1] = arr[i];
            break;
        }
        for (j = n - 2; j >= k; j--) {
            arr[j + 1] = arr[j];
            arr[k] = x;
            printf("%d", arr[j]);
        }
        printf("%d", arr[i]);
        return 0;
    }
}

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-11-10 14:10
    关注

    供参考:

    #include<stdio.h>
    const int N = 1000;
    int main()
    {
        int n, m, i;
        int a[N];
        scanf("%d", &n); //n有序数列个数
        for (i = 0; i < n; i++) // 输入n个有序数列元素
            scanf("%d", &a[i]);
    
        scanf("%d", &m); //输入 m: 待插入的数
    
        if (m > a[n - 1]) {   // 插入操作
            a[n] = m;
        }
        else {
            for (i = n; m < a[i - 1] && i > 0; i--) {
                a[i] = a[i - 1];
            }
            a[i] = m;
        }
    
        for (i = 0; i < n + 1; i++)//输出 插入后的有序数列
            printf("%d ", a[i]);
        printf("\n");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 GD32 SPI通信时我从机原样返回收到的数据怎么弄?
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?