这个是题目,要求对奇数从大到小排序,偶数从小到大排序,全局变量和全局数组不能使用,也不能使用指针
5条回答 默认 最新
- 技术专家团-小桥流水 2022-11-14 10:51关注
遍历数组,把原数组拆分成2个数组,2个数组分别排序就是了
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int cut(int a[], int n,int od[],int ev[]) { int i, j=0, t=0; for (i = 0; i < n; i++) { if (a[i] % 2 == 1) //奇数 { od[j++] = a[i]; } else ev[t++] = a[i]; } return j; //返回奇数的个数 } //f=1表示从大到小,0表示从小到大 void sort(int a[], int n,int f) { int i, j, t; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - 1 - i; j++) { if ((f == 1 && a[j] < a[j + 1]) || (f == 0 && a[j] > a[j + 1])) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } } int main() { int a[100], od[100], ev[100]; int n = 0, i; int nmbod = 0, nmbev = 0; //奇数和偶数的个数 while (scanf("%d", &a[n]) != EOF) n++; nmbod = cut(a, n, od, ev); nmbev = n - nmbod; sort(od, nmbod,1); sort(ev, nmbev,0); for (i = 0; i < nmbod; i++) printf("%d ", od[i]); printf("\n"); for (i = 0; i < nmbev; i++) printf("%d ", ev[i]); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 基于双目测规则物体尺寸
- ¥15 wegame打不开英雄联盟
- ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
- ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
- ¥30 eclipse开启服务后,网页无法打开
- ¥30 雷达辐射源信号参考模型
- ¥15 html+css+js如何实现这样子的效果?
- ¥15 STM32单片机自主设计
- ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
- ¥15 不小心不正规的开发公司导致不给我们y码,