#c #arrays #function #sorting
#c #массивы #функция #сортировка
Вопрос:
Я пытаюсь выполнить сортировку по количеству введенных поклонников, а не по цене билетов, но когда я меняю продажи на поклонников, я получаю ошибку. Я думаю, это как-то связано с тем, как он инициализируется, но я новичок во всем этом, и я запутался в соусе.
Я попытался изменить весь код так, чтобы fans было числом с плавающей точкой, но это все испортило.
void switchRows (int m, int n) {
char tc;
int ti;
float v;
// printf ("Switching %d with %dn", m, n);
for (int i = 0; i < MAXN; i ) {
tc = group [m][i];
group [m][i] = group [n][i];
group [n][i] = tc;
} // end for each character in a group name
for (int i = 0; i < MAXC; i ) {
ti = fans [m][i];
fans [m][i] = fans [n][i];
fans [n][i] = ti;
} // end for each fan category
v = sales [m];
sales [m] = sales [n];
sales [n] = v;
} // end switch
int findMinSales (int m) {
int min = fans [m];
int target = m;
for (int i = m 1; i < count; i )
if (fans [i] < min) {
min = fans [i];
target = i;
} // end new max found
return target;
} // end function findMinSales
void sortBySales () {
int target;
for (int i = 0; i < count; i ) {
target = findMinSales (i);
if (target < i)
switchRows (i, target);
} // for each concert
} // end function sortBySales
Вот ошибка, которую я получаю:
warning: incompatible pointer to integer conversion initializing 'int' with an expression of type 'int [4]' [-Wint-conversion]
int min = fans [m];
^ ~~~~~~~~
main.c:82:18: warning: ordered comparison between pointer and integer ('int *' and 'int')
if (fans [i] < min) {
~~~~~~~~ ^ ~~~
main.c:83:11: warning: incompatible pointer to integer conversion assigning to 'int' from 'int [4]' [-Wint-conversion]
min = fans [i];
^ ~~~~~~~~
3 warnings generated
Комментарии:
1. Здесь у вас много переменных, но мы не знаем типы ни одной из них. Можете ли вы поделиться объявлением переменных?
2. Вот как начинается код: #определите MAXW 100 // максимальное количество символов в приветствии #определите MAXN 100 // максимальное количество символов в названии группы / концерта #определите MAXG 50 // максимальное количество концертов / групп #определите MAXC 4 / / максимальное количество категорий #определите MAXT 1 //общий объем продаж [MAXW]; char group [MAXG][MAXN]; число поклонников [MAXG] [MAXC]; плавающие цены [MAXC]; плавающие продажи [ MAXG]; float total [MAXT]; количество входов = 0;
3. извините за форматирование. Я тоже новичок в этих потоках.
4. @glts2814 Код в комментариях трудно читать. Не могли бы вы отредактировать свой вопрос с учетом этой информации, пожалуйста? В левом нижнем углу есть кнопка редактирования. Нам также нужно посмотреть, как вы вызываете эти функции.
5. Трудно помочь, не видя, как были инициализированы ‘fans’, но, похоже, вы неправильно разыменовываете указатели, ie.
int min = *fans[m]