Ну, дон Не знаю, нужен ли вам ответ, но я исправил ваш код. Вот ошибки я нашел
int high (int n1)
{
int l;
for (l=0; l<n1; l++)
{
if (n1 > l)
return n1;
}
}
В этом для цикла, есть условие l<n1
и внутри контура для вас есть заявление if(n1 > l)
, которые никогда не будут достигнуты из-за l<n1
. Вы сказали, что получаете 37 каждый раз, но вместо этого я получаю 10. Это показывает, что это было неопределенное поведение, потому что реальное значение не было возвращено. (Эта часть кода действительно не означала никакого смысла, так как эта функция даже не пытается найти наибольшее число).
Другой вопрос, который я нашел это вы использовали getch()
без включения <conio.h>
(также указывает на то, что <conio.h>
не является стандартом в C++)
Ну, хотя этот вопрос помечено C++, так как код полностью с, я сделали фиксированный код в c. Я удалил getch()
в код. Так вот код
#include<limits.h>
#include <stdio.h>
#include <stdlib.h>
#define p printf
#define s scanf
int high (int *n1,int lar); // now I have used *n1 to get the address of the array.
int main(int argc, char *argv[])
{
int i, num[10],lar=INT_MIN; // the variable lar is given the minimum value that can be held by an int
p("Input 10 numbers\n");
for (i=0; i<10; i++)
{
p("Enter Number: ");
s("%d",&num[i]);
}
p("Highest Number: %d",high(num,lar)); // sending the entire array to the function by sending its address
}
int high (int *n1,int lar)
{
int l;
for (l=0; l<10; l++) // since the size you have taken for your array is 10, I have used 10 here. But if you don't know the size beforehand, pass the size as an argument to the function
{
if (n1[l] >lar) // Well, this is the simple part
lar=n1[l]; // Simply assigning the largest value to lar
}
return lar; // Finally returning the value lar.
}
Надеюсь, это вам поможет.
Зачем это работает? Вам нужно передать массив функции и вернуть функцию наибольшему элементу. Вот учебник, который вы можете использовать: http://www.dreamincode.net/forums/topic/206002-finding-min-and-max-numbers-in-an-array/ – NathanOliver
Это помечено 'C++' not 'C '. Если это действительно 'C++', вы должны использовать' 'вместо' 'и' std :: vector 'вместо' int [] ' –
CoryKramer