МАКСИМАЛЬНОЕ значение из ( максимального значения первых 3 положительных чисел массива , минимальное значение из 2 последних элементов массива ). Вывести массив подкрасив подходящие по условию эл-ты (т.е. первые 3 положит эл-та и последние 2 четных эл-та ПыСы в зеленый цвет и красный соответственно). Проблема в том , что я не могу вывести и использовать последние 2 четных эл-та. Эл-ты не на последних 2 четных позициях а именно 2 последних четных эл-та. (в задачке надо ещё 2 условия реализовать не обращайте внимания, всё в case 1 )
вот мой код
const int n = 10;
// Наш массив заданный вручную.
int a[n];
// Переменная для меню.
int choice;
// Переменные хранящие размер наших вспомогательных массивов.
int count1=0,count2=0;
int s =0;
int k = 0;
// Для хранения первых 3х положительных значений массива и последних двух чётных чисел массива сответственно.
int x[count1],y[count2];
int max1,max2,min1,i,m=0;
int AverageValue = 0, sum = 0;
for ( int i = 0; i < n; i++)
{
printf("a[%d]=",i);
scanf("%i",&a[i]);
}
printf("\nEnter \n1) max(max(first 3), min(last 2 even).");
printf("\n2) Average even(3 elements before average element of array.");
printf("\n3) Elements who mod 5 == 0 replace to 15.");
printf("\n Enter your choice = ");
scanf("%i",&choice);
switch(choice)
{
case 1:
for ( i = 0; i < n; i++)
{
if( m < 3)
{
if (a[i] > 0)
{
SetColor(2);
printf("\t%i",a[i]);
x[count1++] = a[i];
m++;
continue;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
continue;
}
}
if ((a[i] % 2 == 0)&&(k < 2))
{
SetColor(4);
printf("\t%i",a[i]);
// Записываем нужные эл-ты в массив для последущего нахождения
// максимального значения.
y[count2++] = a[i];
k++;
continue;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
continue;
}
}
SetColor(15);
max1 = x[0];
for ( i = 0 ; i < 3; i++)
{
max1 = x[i] > max1 ? x[i] : max1;
}
min1 = y[0];
for ( i = 0; i < 2; i++)
{
min1 = y[i] < min1 ? y[i] : min1;
}
max2 = max1 > min1 ? max1 : min1;
printf("\nMax Value from %i and %i is %i",max1,min1,max2);
break;
case 2:
m = 0;
i = 0;
for ( i = 0; i < n; i++)
{
if(( a[i] % 2 == 0)&&(k<3)&&(i < n/2))
{
SetColor(2);
printf("\t%i",a[i]);
sum += a[i];
// M хранит кол-во чётных элементов до середины массива.
m++;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
}
}
AverageValue = sum / m;
printf("\nAverageValue = %i",AverageValue);
break;
case 3:
for ( i =0; i < n; i++)
{
if ( a[i] % 5 == 0)
{
a[i] = 15;
SetColor(2);
printf("\t%i",a[i]);
// S хранит кол-во элементов делящихся на 5.
s++;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
}
}
break;
default:
printf("enter 1 or 2 or 3!");
goto def;
}
// Размер массива
const int n = 10;
// Наш массив заданный вручную.
int a[n];
// Переменная для меню.
int choice;
// Переменные хранящие размер наших вспомогательных массивов.
int count1=0,count2=0,count3=0;
int s =0;
int k = 0;
// Для хранения первых 3х положительных значений массива и последних двух чётных чисел массива сответственно.
int x[count1],y[count2],z[count3];
int max1,max2,min1,i,m=0;
int AverageValue = 0, sum = 0;
for ( int i = 0; i < n; i++)
{
printf("a[%d]=",i);
scanf("%i",&a[i]);
}
def: printf("\n Enter \n 1) max(max(first 3), min(last 2 even). \n 2) Average even(3 elements before average element of array. \n 3) Elements who are devidet into 5 replace to 15.))\n Enter your choice = "); scanf("%i",&choice);
switch(choice)
{
case 1:
for ( i = n-1; i >= 0; i--)
{
if (a[i] % 2 == 0)
{
z[count3++]=i;
}
continue;
}
for ( i = 0; i < n; i++)
{
if( m < 3)
{
if (a[i] > 0)
{
SetColor(2);
printf("\t%i",a[i]);
x[count1++] = a[i];
m++;
continue;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
continue;
}
}
if (( i == z[0] )||( i == z[1] ) )
{
SetColor(4);
printf("\t%i",a[i]);
// Записываем нужные эл-ты в массив для последущего нахождения максимального значения.
y[count2++] = a[i];
k++;
continue;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
continue;
}
}
SetColor(15);
max1 = x[0];
for ( i = 0 ; i < 3; i++)
{
max1 = x[i] > max1 ? x[i] : max1;
}
min1 = y[0];
for ( i = 0; i < 2; i++)
{
min1 = y[i] < min1 ? y[i] : min1;
}
max2 = max1 > min1 ? max1 : min1;
printf("\nMax Value from %i and %i is %i",max1,min1,max2);
break;
case 2:
m = 0;
i = 0;
for ( i = 0; i < n; i++)
{
if(( a[i] % 2 == 0)&&(k<3)&&(i < n/2))
{
SetColor(2);
printf("\t%i",a[i]);
sum += a[i];
// M хранит кол-во чётных элементов до середины массива.
m++;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
}
}
AverageValue = sum / m;
printf("\nAverageValue = %i",AverageValue);
break;
case 3:
for ( i =0; i < n; i++)
{
if ( a[i] % 5 == 0)
{
a[i] = 15;
SetColor(2);
printf("\t%i",a[i]);
// S хранит кол-во элементов делящихся на 5.
s++;
}
else
{
SetColor(15);
printf("\t%i",a[i]);
}
}
break;
default:
printf("enter 1 or 2 or 3!");
goto def;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вопрос такой, почему один код выдает "Значение типа char(*)[4] нельзя использовать для инициализации сущности типа char**"
При вот таком вот способе открытия файла выдает ошибку следующего характера: (фото 1 и фото 2)Как можно исправить? Спасибо