Мне нужно найти минимальное и максимальное значения в моем массиве вместе с их позициями; мой массив - это рандомизированные значения от 0 до 1000, а пользователь определяет количество генерируемых случайных чисел. Почему я получаю значения для моего максимума, минимума и их позиций, которых нет в моем массиве?Минимальные и максимальные значения не являются числами в массиве
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 1000
int arrSum(int arr[SIZE], int b)
{
if(b < 0)
{
return 0;
} else
{
return arr[b] + arrSum(arr, b-1);
}
}
int main()
{
int inputNum;
int i,q;
int arr1[SIZE];
int sum;
int avg;
int min;
int max;
int location1,location2, j = 1;
srand(time(0));
min = arr1[0];
for(j = 1; j < inputNum; j++)
{
if(arr1[j] > max)
{
max == arr1[j];
location1 = j + 1;
}
else if (arr1[j] < min)
{
min == arr1[j];
location2 = j + 1;
}
}
printf("Enter an integer between 0 and 1000: ");
scanf("%d",&inputNum);
for(q = 0; q < inputNum; q++)
{
arr1[q] = rand() % 1001;
}
printf("min: %6d pos:%4d\n",min,location2);
printf("max: %6d pos:%4d\n",max,location1);
sum = arrSum(arr1, inputNum);
printf("sum: %6d\n", sum);
avg = sum/inputNum;
printf("avg: %6d\n\n",avg);
printf(" Pos | Val\n");
printf("-------------\n");
for (i = 0; i < inputNum; i++)
{
printf("%4d |%4d\n", i,arr1[i]);
}
return 0;
}
Это код из ада. – Inline
Почему вы начинаете свой массив ** после ** искать max и min ??? – Stargateur
Еще более любопытно записывать индекс max/min как 'location1 = j + 1;'. Лучше не путать подсчет людей с машинной индексацией - перевести это в точке ввода/вывода. –