鱼C论坛

 找回密码
 立即注册
查看: 995|回复: 3

[已解决]关于调用函数排十个数的大小

[复制链接]
发表于 2020-12-3 23:52:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x




//哪位大哥帮俺看看,为毛会失败啊,感觉没啥大问题。






#include<stdio.h>
int main(){
        void sort(int array[],int n);
        int a[10]={45,2,9,0,-3,54,12,5,66,33 },i;

        sort(a,10);
        printf("the sorted array:\n");
        for(i=0;i<10;i++)       
                printf("%d     ",a[i]);
        printf("\n");

        return 0;
}

void sort(int array[],int n)
{
        int i,j,t;

        for(i=0;i<n-1;i++)
                for(j=0;j<n-1-i;j++){
                if(array[j]>array[j+1])
                        t=array[j];array[j]=array[j+1];array[j+1]=t;
                }
}
最佳答案
2020-12-4 00:02:10
本帖最后由 昨非 于 2020-12-4 00:13 编辑

把该加的大括号全加上,就对了
就是
  1.                      t=array[j];array[j]=array[j+1];array[j+1]=t;
复制代码

这一行,要严格控制在if下,不然执行顺序就错了
测试结果:


  1. the sorted array:
  2. -3     0     2     5     9     12     33     45     54     66
复制代码


满意的话请设为最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-4 00:01:34 | 显示全部楼层
  1. #include<stdio.h>
  2. int main() {
  3.         void sort(int array[], int n);
  4.         int a[10] = { 45,2,9,0,-3,54,12,5,66,33 }, i;

  5.         sort(a, 10);
  6.         printf("the sorted array:\n");
  7.         for (i = 0; i < 10; i++)
  8.                 printf("%d     ", a[i]);
  9.         printf("\n");

  10.         return 0;
  11. }

  12. void sort(int array[], int n)
  13. {
  14.         int i, j, t;

  15.         for (i = 0; i < n - 1; i++)
  16.         {
  17.                 for (j = 0; j < n - 1 - i; j++)
  18.                 {
  19.                         if (array[j] > array[j + 1])
  20.                         {
  21.                                 t = array[j]; array[j] = array[j + 1]; array[j + 1] = t;
  22.                         }
  23.                 }
  24.         }
  25. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-4 00:02:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 昨非 于 2020-12-4 00:13 编辑

把该加的大括号全加上,就对了
就是
  1.                      t=array[j];array[j]=array[j+1];array[j+1]=t;
复制代码

这一行,要严格控制在if下,不然执行顺序就错了
测试结果:


  1. the sorted array:
  2. -3     0     2     5     9     12     33     45     54     66
复制代码


满意的话请设为最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-4 00:35:53 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-8 23:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表