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 надо просто убрать знак равенства. Если же минимальный элемент (даже неважно какой - уникальный или нет !) стоит самым первым в списке, то перед ним вообще нет элементов, а сам он не считается, поэтому ничего, естественно, и не выводится..
#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 надо просто убрать знак равенства. Если же минимальный элемент (даже неважно какой - уникальный или нет !) стоит самым первым в списке, то перед ним вообще нет элементов, а сам он не считается, поэтому ничего, естественно, и не выводится..
#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;
}
#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;
}
Сергей Григорьев
нужно вводить массив через клаву
Ответ на ваш вопрос в нескольких уроках:
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().
Как только элемент с минимальным значением будет найден, можно будет начать складывать значения элементов массива, до элемента с минимальным значением.
Правда с какой стороны будут складываться значения, сначала или с конца, это уже другой вопрос.
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().
Как только элемент с минимальным значением будет найден, можно будет начать складывать значения элементов массива, до элемента с минимальным значением.
Правда с какой стороны будут складываться значения, сначала или с конца, это уже другой вопрос.
Абдуваккос Дадабоев
ему код готовый нужен
Похожие вопросы
- C++ одномерный массив
- Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел
- Задан одномерный массив целых чисел создать код на C++
- Одномерный массив нужна программа срочно)
- Для всех задач сформировать одномерный массив N случайных чисел из интервала (-10; 10).
- Помогите пожалуйста написать программу небольшую в C++. Одномерный массив
- Помогите пожалуйста - создать 4 массива на c++
- Нужно решить задачу с массивами на C++
- Написать массив на C(не C++) пожалуйста!!! простым языком с пояснениями
- Массив функции c++ помогите