gpt4 book ai didi

c - 按升序排列给定的数字

转载 作者:太空狗 更新时间:2023-10-29 15:02:11 25 4
gpt4 key购买 nike

我刚开始学C,今天给我一道题,其中一个部分是接受用户的数字数组,并按升序排列。数组大小也由用户指定。我为此使用了以下代码->

   for (i = 0; i <= y - 1; ++i) {
for (ii = i + 1; ii <= y - 1; ++ii) {
if (x[i] > x[ii]) {
temp = x[i];
x[i] = x[ii];
x[ii] = temp;
}
}
}
int k;
printf("\nNumbers arranged in ascending order:\n");
for (k = 0; k < y; ++k) {
printf("%d\n", x[i]);
}

这里,变量 y 是数组的大小,x 是数组变量的名称(所以变量定义是这样的-> int x[y];但问题是,它只是打印出数组的最终值。详细说明问题:假设我输入 3 作为数组大小。然后程序要求我提供 3 个数字,我选择了 34、45、22。现在执行完这整个代码后,它显示 x[3](现在 x[3] 甚至不存在!因为 x[2] 是数组中的最终值。所以它给了我变量的内存位置。)我哪里错了?

最佳答案

你需要改变

 printf("%d\n", x[i]);

printf("%d\n", x[k]);

在打印循环中使用 k 作为循环计数器变量。

关于c - 按升序排列给定的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29657679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com