C/C++

Помогите пожалуйста с остальными заданиями в языке С

J5:

Пользователь вводит число N. Заполните массив случайными N числами [-152, 250]. Отсортируйте массив и умножьте 2-е максимальное и 3-е минимальное значения, равныйте 0 индексу массива.

J7:

Пользователь вводит n значений. Заполните массив n случайными числами. Когда в массиве элементы четно-нечетные отсортирован в порядке убывания , выведите TRUE, иначе FALSE.

ввод: n = 4 обр = {1, 2, 3, 4};
вывод: TRUE

ввод: n = 6 обр = {1, 2, 4, 5, 6};
вывод: FALSE // потому что 4 идет после 2
J7
 #include  
using namespace std;

int main()
{
int n, val, prev=INT_MAX;
cin >> n;
bool ok = true;
while (n--)
{
cin >> val;
if (prev == INT_MAX)
{
prev = val; continue;
}
if (val < prev || (val % 2 == prev % 2)) ok = false;
prev = val;
}
cout
Майнкрафт Профи
Майнкрафт Профи
51 416
Лучший ответ
Владимир Лесневский :), только надо на C, а не на C++. Но переделать легко, судя по попыткам автора вопроса, с этим он должен и сам справиться :)
TRUE
Мурат Избанов Помогите пожалуйста
J5 - хотя задание не очень понятно!
 #include  
#include
#include
#include

void randVector(int *v, size_t n, int _min, int _max)
{
for (size_t i = 0; i < n; i++)
v[i] = (rand() % (_max - _min + 1)) + _min;
}

void printVector(int *v, size_t n)
{
for (size_t i = 0; i < n; i++)
{
printf("%5d", v[i]);
if ((i + 1) % 20 == 0)
puts("");
}
puts("");
}

int cmpf(const void *a, const void *b)
{
return *(const int *)a - *(const int *)b;
}

int main(void)
{
size_t n;

srand(time(NULL));
printf("Input n: ");

int k = scanf("%zu", &n);
if (k != 1) {
fprintf(stderr, "input error");
return -1;
}

int *vec = malloc(sizeof *vec * n);
assert(vec);

randVector(vec, n, -152, 250);
printVector(vec, n);
puts("");
qsort(vec, n, sizeof *vec, cmpf);
printVector(vec, n);

int secondMax = INT_MIN;
int thirdMin = INT_MAX;
size_t boundIdx = 0;

for (size_t i = 0; i < n; i++)
{
if (vec[i] > 0)
{
boundIdx = i;
break;
}
}

secondMax = boundIdx + 1 < n - 1 ? vec[boundIdx + 1] : vec[boundIdx];
thirdMin = boundIdx - 3 >= 0 ? vec[boundIdx - 3] : vec[boundIdx];

puts("");
printf("second max: %d\n", secondMax);
printf("third min: %d\n", thirdMin);
printf("mul: %d\n", thirdMin * secondMax);

free(vec);
return 0;
}
Pirli G
Pirli G
11 084
FALSE
___Эдик ___
___Эдик ___
2 934
Мурат Избанов Помогите пожалуйста