C/C++

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

J14
создайте программу, которая определяет, сколько чисел находится между заданной серией int, состоящей из n целых чисел, и значениями Max и min в них(не считая Max и min).
Вход: n=5 A[5]={2,9,3, -4,5}
Выход: есть 1 число между max и min
J16:

Выпадает только 1 число между числами от 1 до 100. Нужно узнать, какой
а[] = {88, 85, 96, 81, 39, 12, 4, 56, 2, 13, 31, 51, 54, 21, 5, 48, 28, 57, 40, 44, 55, 74, 80, 94, 17, 61, 47, 1, 10, 27, 83, 42, 36, 75, 3, 65, 45, 24, 15, 25, 14, 30, 41, 53, 34, 11, 93, 86, 32, 26, 97, 7, 98, 50, 38, 68, 59, 64, 63, 76, 91, 52, 71, 43, 35, 18, 79, 87, 29, 58, 78, 22, 95, 49, 90, 67, 89, 69, 62, 9, 33, 99, 6, 82, 8, 70, 84, 77, 37, 72, 46, 16, 23, 73, 92, 60, 66, 100, 20}
J18
распечатайте элементы в массиве на экране, взяв по одному из повторяющихся.
вход: { 1, 2, 4, 2, 1, 4, 3, 3, 5, 6, 5 };
выход: { 1, 2, 4, 3, 5, 6 };
Kostan4Ik Mukoseev
Kostan4Ik Mukoseev
56
16 еще два альтернативных решения
 #include  

int main()
{
int a[]{88,85,96,81,39,12,4,56,2,13,31,51,54,21,5,48,28,57,40,44,55,74,80,94,17,61,47,1,10,27,83,42,36,75,3,65,
45,24,15,25,14,30,41,53,34,11,93,86,32,26,97,7,98,50,38,68,59,64,63,76,91,52,71,43,35,18,79,87,29,58,78,22,95,
49,90,67,89,69,62,9,33,99,6,82,8,70,84,77,37,72,46,16,23,73,92,60,66,100,20 };
char numbers[100]{}; //память вхождений
for (int i = 0; i < sizeof(a)/sizeof(int); ++i) numbers[a[i] - 1] = 1; //заполнение маски
for (int i = 0; i < 100; ++i) if (!numbers[i]) printf("Missing number = %d", i + 1); //считывание маски
}
 #include  
int main() {
int a[] = { 88, 85, 96, 81, 39, 12, 4, 56, 2, 13, 31, 51, 54, 21, 5, 48,
28, 57, 40, 44, 55, 74, 80, 94, 17, 61, 47, 1, 10, 27, 83, 42, 36,
75, 3, 65, 45, 24, 15, 25, 14, 30, 41, 53, 34, 11, 93, 86, 32, 26,
97, 7, 98, 50, 38, 68, 59, 64, 63, 76, 91, 52, 71, 43, 35, 18, 79,
87, 29, 58, 78, 22, 95, 49, 90, 67, 89, 69, 62, 9, 33, 99, 6, 82,
8, 70, 84, 77, 37, 72, 46, 16, 23, 73, 92, 60, 66, 100, 20 },
n = sizeof a / sizeof * a, all = (1 + 100) * 100 / 2; //сумма алгебраической прогрессии 1-100
for (int i = 0; i < n; i++) all -= a[i];
printf("Missing number = %d", all);
}
АП
Андрей Пучков
51 416
Лучший ответ
Kostan4Ik Mukoseev Помогите на 14 пожалуйста
16 и 18 я тебе сделал в твоем прошлом вопросе (это чтобы никто второй раз не делал). А делать 14 у меня свободное время кончилось :(
[ Pro100 Dumik ]
[ Pro100 Dumik ]
83 927
Kostan4Ik Mukoseev ну пожалуйста
14:
 #include  
#include


struct pair{
int val, index;
};


int max(int a, int b) {
return (a > b ? a : b);
}


int main() {
int n, cur_elem;
printf("Input n:\n");
scanf("%d", &n);
struct pair max_elem = {0, 0}, min_elem = {0, 0};
printf("Input %d integer numbers:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &cur_elem);
if (i == 0) {
max_elem.val = cur_elem;
min_elem.val = cur_elem;
} else {
if (cur_elem > max_elem.val) {
max_elem.val = cur_elem;
max_elem.index = i;
}

if (cur_elem < min_elem.val) {
min_elem.val = cur_elem;
min_elem.index = i;
}

}
}
printf("There are %d elements between the max and the min ones", max(abs(max_elem.index - min_elem.index) - 1, 0));
}
Kostan4Ik Mukoseev спасибо огромное!