酒煮青梅392 2022-11-27 16:16 采纳率: 68.2%
浏览 5
已结题

看一下我的问题,感觉自定义函数老是调用不起来

img

img

img

img


感觉自定义函数调用不起来,怪怪的,但是又不知道哪里的错误。请大家帮忙看一看

  • 写回答

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条)

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月27日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看