Stack Overflow на русском Asked by gr_new on January 6, 2021
В общем, задача очень была очень простой. Нужно было просто найти минимальный элемент массива, но сделать это через доп.функцию с её последующим вызовом.
#include <stdio.h>
int max_number(int arr[])
{
int max;
for (int i=0; i<5; i++)
{
if (arr[i]>arr[0])
max=arr[i];
}
return max;
}
int main()
{
int arr[5];
int max;
int i;
for (i=0; i<5; i++)
{
scanf("%d", &arr[i]);
if (arr[i]<0)
arr[i]*=-1;
}
max_number(arr);
printf ("%d", max);
return 0;
}
Как я понял, вызов функции он вообще не видит и выводит в консоль 21845. В этом всём сильно путаюсь, буду благодарен ответам.
Во-первых, в условии вы ясно написали:
Нужно было просто найти минимальный элемент массива, но сделать это через доп.функцию с её последующим вызовом.
Вы же ищете максимальный. Далее, вы не передаете размер массива в функцию, не инициализируете переменные.
Вот правильное решение:
#include <stdio.h>
int min_number(int* arr, unsigned int size) {
int min = arr[0];
for (unsigned int i = 1; i < size; i++)
if (arr[i] < min) min = arr[i];
return min;
}
int main() {
int arr[5];
for (int i = 0; i < 5; i++) {
scanf("%d", &arr[i]);
if (arr[i] < 0)
arr[i] *= -1;
}
printf("%d", min_number(arr, 5));
}
Ваше изменение знака
if (arr[i] < 0) arr[i] *= -1;
оставляю на вашей совести - об этом в условии ничего не говорится.
Correct answer by Mikhailo on January 6, 2021
место:
if (arr[i]>arr[0])
max=arr[i];
надо:
if (arr[i] > max)
max = arr[i];
место:
max_number(arr);
надо:
max = max_numder(arr);
Answered by Danis on January 6, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP