煎饼卷饼 2022-05-28 23:58 采纳率: 98.3%
浏览 43
已结题

这道数组问题答案的代码有点看不明白

有100个正整数存放在数组中,试编一函数,要求:
(1)把所有的偶数按从小到大的顺序存放在数组的前半部;
(2)把所有的奇数按从大到小的顺序存放在数组的后半部;

我不懂的都放在注释里了

#include <stdio.h>
#define N 100

int divide(int a[],int n);

void sort(int a[],int n);

int main(){
    int a[N];
    int n,i,d;
    printf("请输入数组个数:");          //这个数组个数是干嘛用的
    scanf("%d",&n);
    printf("请输入数组:");                     
    for(i=0;i<n;i++){                             //这个循环是干嘛用的
        scanf("%d",&a[i]);
    }
    d=divide(a,n);
    sort(a,d);                       //这条语句是什么意思
    sort(a+d,n);                   //这条语句是什么意思
    for(i=0;i<n;i++){
        printf("%d ",a[i]);
    }
    return 0;
}

int divide(int a[],int n){
    int i=0,j=n-1;
    int temp;
    while(i<j){
        while(a[i]%2==0) i++;
        while(a[j]%2!=0) j--;
        if(i<j){
            temp=a[i];
            a[i]=a[j];
            a[j]=temp;
        }
    }
    return i;
}

void sort(int a[],int n){
    int i,j,temp;
    for(i=0;i<n;i++){
        for(j=0;j<n-1-i;j++){
            if(a[j]>a[j+1]){
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
}
  • 写回答

1条回答 默认 最新

  • 浪客 2022-05-29 00:32
    关注
    
        printf("请输入数组个数:");          //这个数组个数是干嘛用的  -- 要输入的数组元素个数。
        scanf("%d",&n);
        printf("请输入数组:");                     
        for(i=0;i<n;i++){                             //这个循环是干嘛用的 -- 根据输入的n输入数组元素
            scanf("%d",&a[i]);
        }
        d=divide(a,n);//-- 交换奇偶数位置,并返回偶数个数
        sort(a,d);                       //这条语句是什么意思 -- 排序数组中前d个元素
        sort(a+d,n);                   //这条语句是什么意思  --排序数组中d之后的元素
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

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

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度