TOH TOH 2021-10-28 18:21 采纳率: 100%
浏览 68
已结题

给你一个数组,先从小到大输出奇数位的数,再从小到大输出偶数位的数。求函数解法!

我写了一个代码,其中偶数位和奇数位有着相似的操作,问:写一个函数来实现两次相似的操作!

#include <stdio.h>
int main() {
    int a[1000], b[1000], c[1000], i, j, k, n, x;
    scanf("%d", &n);
    //把数字存进a[]
    for(i = 0; i < n; i++) {
        scanf("%d", &a[i]); //a[0]~a[n-1]
    }
    //把奇数位存进b[]
    for(i = 0, j = 0; i < n; i = i+2, j++) {
        b[j] = a[i]; //b[0]~b[j-1]
    }

    //把偶数位存进c[]
    for(i = 1, k = 0; i < n; i = i+2, k++) {
        c[k] = a[i]; //c[0]~c[k-1]
    }

    //b[]的冒泡排序
    for(i = 0; i < j-1; i++)//一共j个数,排j-1次
    {
        for(x = 0; x < j-i-1; x++) {
            if(b[x] > b[x+1]) {
                int t = b[x+1];
                b[x+1] = b[x];
                b[x] = t;
            }
        }
    }
    //c[]的冒泡排序
    for(i = 1; i < k; i++)//排k-1次
    {
        for(x = 0; x < k-i; x++)//比较k-i次
        {
            if(c[x] > c[x+1]) {
                int t = c[x+1];
                c[x+1] = c[x];
                c[x] = t;
            }
        }
    }
    for(i = 0; i < j; i++)//输出奇数列
    {
        printf("%d ", b[i]);
    }
    printf("\n");
    for(i = 0; i < k; i++)//输出偶数列
    {
        printf("%d ", c[i]);
    }
    return 0;
}

  • 写回答

3条回答 默认 最新

  • CSDN专家-link 2021-10-28 19:11
    关注
    #include <stdio.h>
    void fun(int *a,int n,int s)
    {
        int b[1000];
        int i,j,x;
         for(i = s, j = 0; i < n; i = i+2, j++) {
            b[j] = a[i]; 
        }
        for(i = 0; i < j-1; i++)
        {
            for(x = 0; x < j-i-1; x++) {
                if(b[x] > b[x+1]) {
                    int t = b[x+1];
                    b[x+1] = b[x];
                    b[x] = t;
                }
            }
        }
         for(i = 0; i < j; i++)
        {
            printf("%d ", b[i]);
        }
        printf("\n");
    }
    
    int main() {
        int a[1000],n,i;
        scanf("%d", &n);
        for(i = 0; i < n; i++) {
            scanf("%d", &a[i]); 
        }
        fun(a,n,0);
        fun(a,n,1);
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上