这个是题目,要求对奇数从大到小排序,偶数从小到大排序,全局变量和全局数组不能使用,也不能使用指针
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 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥15 DruidDataSource一直closing
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据