Предмет: Информатика,
автор: KGW
Нужен код на C++:
В произвольно заданном одномерном массиве определить два элемента с наибольшими значениями и обнулить все элементы, расположенные между найденными значениями.
Ответы
Автор ответа:
0
#include <iostream>
using namespace std;
int main()
{
int s, i;
cout << "s = ";
cin >> s;
double a[s], m1, m2;
int m1i, m2i, f, t;
/* Заполнение */
for (i = 0; i < s; i++)
{
cout << i << ':';
cin >> a[i];
}
/* Первый максимум */
m1i = 0;
m1 = a[m1i];
for (i = 1; i < s; i++)
{
if (a[i] > m1)
{
m1 = a[i];
m1i = i;
}
}
/* Второй максимум */
m2i = 0;
m2 = a[m2i];
for (i = 1; i < s; i++)
{
if (i == m1i) continue;
if (a[i] > m2)
{
m2 = a[i];
m2i = i;
}
}
/* Порядок итерации */
if (m1 > m2)
{
f = m2i;
t = m1i;
}
else
{
f = m1i;
t = m2i;
}
for (i = f + 1; i < t; i++)
{
a[i] = 0;
}
for (i = 0; i < s; i++)
{
cout << a[i] << ' ';
}
return 0;
}
using namespace std;
int main()
{
int s, i;
cout << "s = ";
cin >> s;
double a[s], m1, m2;
int m1i, m2i, f, t;
/* Заполнение */
for (i = 0; i < s; i++)
{
cout << i << ':';
cin >> a[i];
}
/* Первый максимум */
m1i = 0;
m1 = a[m1i];
for (i = 1; i < s; i++)
{
if (a[i] > m1)
{
m1 = a[i];
m1i = i;
}
}
/* Второй максимум */
m2i = 0;
m2 = a[m2i];
for (i = 1; i < s; i++)
{
if (i == m1i) continue;
if (a[i] > m2)
{
m2 = a[i];
m2i = i;
}
}
/* Порядок итерации */
if (m1 > m2)
{
f = m2i;
t = m1i;
}
else
{
f = m1i;
t = m2i;
}
for (i = f + 1; i < t; i++)
{
a[i] = 0;
}
for (i = 0; i < s; i++)
{
cout << a[i] << ' ';
}
return 0;
}
Автор ответа:
0
При вводе размера массива из 5 чисел и заполняя массив элементами: 5 1 2 3 4 выводится: 5 1 2 3 4
Похожие вопросы
Предмет: Английский язык,
автор: evropahacker
Предмет: Математика,
автор: Аноним
Предмет: Химия,
автор: Аноним
Предмет: Экономика,
автор: Smile18Sky
Предмет: Математика,
автор: Rimon008