【发布时间】:2020-05-04 14:06:19
【问题描述】:
我的任务是将考试结果粘贴到按从高到低排序的静态列表中。
我用检查结果初始化一个列表并声明一个“空静态列表”。
使用insertSortArray(...) 函数,我想将结果粘贴到静态列表中。
我想知道为什么“noten”的第二个 printf 之后“noten”的顺序发生了变化。 有人可以向我解释吗? 那是一点。 另一点是我正在努力使用算法对值进行排序。 我知道我可以复制这些值,然后编写一个冒泡排序,但是有没有办法将它从一个列表排序到另一个列表?
#include <stdio.h>
void insertSortArray(float *array, float *list, int length)
{
for (int i = 0; i < length; i++)
{
list[i] = array[i];
}
}
int main()
{
float noten[] = { 4.0,
1.3,
1.0,
5.0,
2.3};
float statList[] = { 0 };
int length = sizeof(noten) / sizeof(float);
for (int i = 0; i < length; i++)
{
printf("%f\n", noten[i]);
}
printf("\n%f\n", noten[1]);
printf("\n");
insertSortArray(noten, statList, length);
printf("\n");
for (int i = 0; i < length; i++)
{
printf("%f\t", noten[i]);
printf("%f\n", statList[i]);
}
printf("\n%f\n", noten[1]);
return 0;
}
【问题讨论】:
-
nit-pick:始终使用无符号类型来存储类型的大小。将
int length替换为size_t length