В настоящее время я изучаю C, и я пытаюсь создать функцию, которая возвращает больше одной вещи. Я написал код, но одно из значений не дает мне правильный результат, и я не могу понять, почему он это делает.Функция, которая возвращает более одной вещи
struct num {
int min;
int max;
};
struct num Some(int Array[]) {
int i;
struct num result;
result.max = Array[0];
result.min = Array[0];
for(i = 0; i<=3; i++) {
if(result.min > Array[i]) {
result.min = Array[i];
} else if(result.max < Array[i]) {
result.max = Array[i];
}
}
return result;
}
int main()
{
int Array[] = {7,8,3};
struct num something;
something = Some(Array);
printf("Total is %d and max is %d",something.min,something.max);
}
Программа печатает правильное минимальное значение массива, но максимальное значение дает 4200784.
В общем, функция должна возвращать только что-то простое: float, int или указатель. В этом случае вы должны передать указатель на struct minmax в качестве аргумента и не иметь возвращаемого значения. – stark
Да, я сделал это с указателями, но я тестировал другие способы возврата нескольких значений из функции. – Max
Возвращение небольшой структуры, такой как это отличный способ сделать функцию, которая возвращает несколько значений, и вы делаете это точно, за исключением для ошибки '<='. –