Итак, у меня это до сих пор. Я пытаюсь найти два больших числа в массиве и вернуть их. Я искал много ресурсов в Интернете, и большинство из них говорят, что «вызов по ссылке» - это путь. Но я не знаю, как заставить его работать с моей программой. Например, я видел этот пример в Интернете:Как вернуть наибольшие два числа в массиве в C?
void Calculate(int x, int y, int* prod, int* quot)
{
*prod = x*y;
*quot = x/y;
}
int x = 10,y = 2, prod, quot;
Calculate(x, y, &prod, ")
Как эта программа действительно «возвращается»? Как распечатать возвращаемые значения на консоли?
#include "stdio.h"
void largest_two(int numbers[], int len, int *largest, int *next_largest){
int i, temp;
*largest = numbers[0];
*next_largest = numbers[1];
if(*largest < *next_largest){
temp = *next_largest;
*largest = *next_largest;
*next_largest = temp;
}
for (i=0; i<sizeof(numbers); i++) {
if(numbers[i]>= *largest){
*largest = numbers[i];
*next_largest = *largest;
}
else if (numbers[i] > *next_largest){
*next_largest = numbers[i];
}
}
}
int main() {
int numbers[] = {3, 1, 2, 3, 6, 2, 8, 0, 0, 0};
int len = 3;
int largest, next_largest;
//==>??? printf("%d %d", largest_two(numbers, len, &largest, &next_largest));
}
'for (i = 0; г' for (i = 0; i
LPs
вызывается' most_two' так же, как вы это делали, а затем 'printf ("% d% d ", наибольший, next_largest)' , –
'printf (" наибольший =% d \ nnext_largest =% d \ n ", самый большой, next_largest);' BTW вы должны купить/прочитать хорошую книгу c и изучить что-то о указателях ... – LPs