C/C++

Одномерный массив в C++

Подскажите, как сформировать одномерный массив в с++ и найти сумму его элементов, расположенных до минимального элемента?
Если имеется в виду последний минимальный элемент (это в случае если минимальный элемент не уникальный !), то с динамическим массивом будет так:
#include <iostream>
using namespace std; int main()
{ int i, n, min, imin, s = 0; cout << "n » ";
cin >> n; int *A = new int [n]; cin >> A[0];
min = A[0]; imin = 0; for (i = 1; i < n; i++)
{ cin >> A[i]; if (A[i] <= min) { min = A[i]; imin = i; } }
if (imin) for (i = 0; i < imin; i++) s += A[i]; cout << s
<< endl; system("pause > nul"); return 0; }
А если имеется в виду первый минимальный элемент, то в операторе A[i] <= min надо просто убрать знак равенства. Если же минимальный элемент (даже неважно какой - уникальный или нет !) стоит самым первым в списке, то перед ним вообще нет элементов, а сам он не считается, поэтому ничего, естественно, и не выводится..
Elmurod Mahmudov
Elmurod Mahmudov
29 440
Лучший ответ
#include <iostream>
#include <ctime>

using namespace std;

int main()
{
const int n = 20; // размер массива
// создаём массив целых чисел
int a[n];
// будем генерировать числа, чтобы не тратить время на воод вручную
srand(time(NULL));
for(int x = 0; x < n; x++)
{
a[x] = rand() % 10 + 1; // псевдослучайное число
// выведем на экран
cout << a[x] << ' ';
}
cout << endl << endl;
int i_min = 0; // индекс минимального элемента
for(int x = 0; x < n; x++)
{
if(a[x] < a[i_min]) i_min = x; // ищим индекс минимального элемента
}
// теперь находим сумму элементов до минимального элемента
int sum = 0;
for(int i = 0; i < i_min; i++)
{
sum += a[i];
}
// выведим сумму на экран
cout << "\tСумма элементов равна " << sum << endl;

return 0;
}
Suxrob Kadirov
Suxrob Kadirov
91 225
Сергей Григорьев нужно вводить массив через клаву
Ответ на ваш вопрос в нескольких уроках:
1. Урок №74. Массивы
https://ravesli.com/urok-74-massivy-chast-1/
2. Урок №75. Фиксированные массивы
https://ravesli.com/urok-75-massivy-chast-2/
После того как создадите массив, нужно будет создать переменную, которая будет хранить информацию об элементе, например minElement=0. То есть изначально наш предполагаемый элемент с минимальным значением будет нулевой.
Чтобы найти элемент с минимальным значением, нужно сравнить minElement с каждым элементом массива и если значение какого-либо элемента будет меньше значения minElement, то номер этого элемента нужно присвоить minElement.
Перебрать все элементы можно с помощью цикла for().

Как только элемент с минимальным значением будет найден, можно будет начать складывать значения элементов массива, до элемента с минимальным значением.
Правда с какой стороны будут складываться значения, сначала или с конца, это уже другой вопрос.
Абдуваккос Дадабоев ему код готовый нужен