这个是题目,要求对奇数从大到小排序,偶数从小到大排序,全局变量和全局数组不能使用,也不能使用指针
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 怎么改成循环输入删除(语言-c语言)
- ¥15 安卓C读取/dev/fastpipe屏幕像素数据
- ¥15 pyqt5tools安装失败
- ¥15 mmdetection
- ¥15 nginx代理报502的错误
- ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
- ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
- ¥100 描述一下元器件的基本功能,pcba板的基本原理
- ¥15 STM32无法向设备写入固件