Forealth 2022-08-05 10:04 采纳率: 66.7%
浏览 33
已结题

求解释一下,到底是哪里出了问题啊

刚写了一段程序,功能是对一个数组里的值进行升序排序,但只是多了个大括号(在关于j的for循环那里)的区别,得到的结果完全不同,自己也没推出来问题在哪,感觉应该不会有那么大的区别啊。

问题相关代码

加大括号:
//ssort.c
#include <stdio.h>

static void swap(int* a,int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}

extern void selection_sort(int array[], int len)
{
int i, j, min;
for (i = 0; i < len - 1; i++)
{
min = i;
for (j = i + 1; j < len; j++)
{
if (array[min] > array[j])
{
min = j;
}

        if (min != i)
        {
            swap(&array[i], &array[min]);
        }
    }
    
}

}

extern void print_array(int array[], int len)
{
int i;
for (i = 0; i < len; i++)
{
printf("%d\t", array[i]);
}
}

//main.c
#include <stdio.h>
#define LEN 10

void selection_sort(int array[], int len);
void print_array(int array[], int len);

int main()
{
int array[] = { 8,1,3,5,6,7,4,9,2,10 };
selection_sort(array, LEN);
print_array(array, LEN);
return 0;
}

不加大括号:
//ssort.c
#include <stdio.h>

static void swap(int* a,int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}

extern void selection_sort(int array[], int len)
{
int i, j, min;
for (i = 0; i < len - 1; i++)
{
min = i;
for (j = i + 1; j < len; j++)

        if (array[min] > array[j])
        {
            min = j;
        }
        if (min != i)
        {
            swap(&array[i], &array[min]);
        }
    
}

}

extern void print_array(int array[], int len)
{
int i;
for (i = 0; i < len; i++)
{
printf("%d\t", array[i]);
}
}

//main.c
#include <stdio.h>
#define LEN 10

void selection_sort(int array[], int len);
void print_array(int array[], int len);

int main()
{
int array[] = { 8,1,3,5,6,7,4,9,2,10 };
selection_sort(array, LEN);
print_array(array, LEN);
return 0;
}

运行结果

加大括号:

img

不加大括号:

img

我尝试了一下逐步运行查看语句,但是看不到这个数组内数据的实时位置,脑子不够用,没推出来。

  • 写回答

1条回答 默认 最新

  • 亖夕 Python领域新星创作者 2022-08-05 10:42
    关注

    多了一个大括号语句结构都不一样了,重新写好缩进,就可以看到有很大变化

    img


    (下次贴代码请在点击后在三引号的范围里贴,这样大家才好帮你查看解决问题)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 爬虫爬取网站的一些信息
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错