У меня есть задача вставить результаты экзамена в список c, отсортированный по возрастанию к минимуму.
Я инициализирую список с результатами экзамена и объявляю «пустое состояние» c список ". С помощью функции insertSortArray(...)
я хочу вставить результат в список stati c.
Мне интересно, почему последовательность «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;
}