感觉自定义函数调用不起来,怪怪的,但是又不知道哪里的错误。请大家帮忙看一看
2条回答 默认 最新
- qzjhjxj 2022-11-27 17:30关注
修改如下,详细说明见注释,供参考:
#include <stdio.h> #define N 10 void Sort1(int a[], int n); void Sort2(int a[], int n, char style = 'd'); //函数声明,最后形参char style = 'd' int main() //带默认初始赋值,在函数调用时可以省略 { //最后参数 style 的实参赋值,默认降序排序 char ch = 'a'; //字符变量 ch 初始值为 'a' int a[N] = { 2,1,5,4,6,3,9,7,8,10 }, i, n = 10;//定义数组a[N],以及元素个数 n = 10 printf("输出省略参数 style 的调用:\n"); Sort2(a, n);//这里省略 style 的调用,等同于 Sort2(a, n, 'd'); //这句也实现 Sort1(a, n) 函数一样的功能 for (i = 0; i < n; i++)//输出排序后的数组 printf("%d ", a[i]); printf("\n"); printf("输出参数style = ch = 'a' 的调用:\n"); //scanf(" %c", &ch); 输入排序的标志 Sort2(a, n, ch); //按 ch 的值 'a' 升序排序 for (i = 0; i < n; i++)//输出排序后的数组 printf("%d ", a[i]); return 0; } void Sort1(int a[], int n)//函数 Sort1() 实现 降序排序 { int i, j, t; for (j = n - 1; j > 0; j--) { for (i = 0; i < j; i++) { if (a[i] < a[i + 1]) { t = a[i]; a[i] = a[i + 1]; a[i + 1] = t; } } } } void Sort2(int a[], int n, char style)//函数 Sort2() 实现 { int i, j, t; if (style != 'a' && style != 'd') return;//函数参数 style 传入的值不正确,则函数什么也不干 for (j = n - 1; j > 0; j--) { for (i = 0; i < j; i++) { if (a[i] > a[i + 1] && style == 'a' || a[i] < a[i + 1] && style == 'd') { t = a[i]; a[i] = a[i + 1]; a[i + 1] = t; } } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向
- ¥15 如何用python向钉钉机器人发送可以放大的图片?