Программирование на с++, массивы и циклы
У меня есть задание : Заданы два одномерных массива X(n), Y(m). Причем 0 <= Yi < n; m <= n, Yi != Yj. Вычислить сумму тех элементов вектора Х, индексы которых совпадают со значениями элементов массива Y.
В чем заключается ошибка, я понимаю , что она глупая , но я ее не вижу ( мне и нужно сделать через enam, я , вроде бы сделал). Сильно не ругайтесь) Мой код :
#include <iomanip>
#include <iostream>
#include <clocale>
#include <string>
using namespace std;
int i, j;
int main()
{
setlocale(LC_ALL, "rus");
int A[5] = {1,2,3,4,5};
int B[5] = {2,3,4,5,6};
enum class enmArrayInit
{ Uninited = 0, WithConst, WithRand, ByUser, };
cout << " Выберите тип инициализации:\n"
<<(int)enmArrayInit::WithConst<< ".константами\n"
<<(int)enmArrayInit::WithRand<<".случайными числами\n"
<<(int)enmArrayInit::ByUser << ".ввести вручную\n";
cout << "Любая другая кнопка завершит программу\n Ваш выбор: ";
int ch = 0; cin >> ch;
switch ((enmArrayInit)ch)
{case enmArrayInit::WithConst:
{
for (int i = 0; i < 5; i++)
break;
for (int j = 0; j < 5; j++)
break;
}
break;
case enmArrayInit::WithRand:
{
for (int i = 0; i < 5; i++){
for (int j = 0; j < 5; j++){
A[i] = rand() % 10;
B[j] = rand() % 10;
}
}
break;
}
case enmArrayInit::ByUser:
{
for (int i = 0; i < 5; i++)
cin >> A[i];
for (int j = 0; j < 5; j++)
cin >> B[j];
break;
}
default: cout << "Программа завершается" << endl;
return 0;
}
for (int i = 0; i < 5; i++)
cout << setw(3) << A[i];
cout << endl;
for (int j = 0; j < 5; j++)
cout << setw(3) << B[j];
cout << endl;
return 0;
int sum;
if ( 0<=B[j] && B[j]<5)
{
if(5<=5)
{
if (A[i]==j)
{
sum += A[i];
}
}
}
cout << "sum" << sum <<endl;
}
Ответы (1 шт):
Автор решения: vlad9i2
→ Ссылка
У вас после вывода на экран массивов стоит return 0;. А можете объяснить, что вы пытаетесь сделать после int sum; и зачем вам if(5 <= 5), который всегда верен
Попробуйте для начала обнулить переменную sum
int sum = 0;
Затем пройтись циклом по элементам второго массива и добавлять нужные элементы в сумму
for(j = 0; j < 5; ++j) {
if(B[j] < 5 && B[j] >= 0) {
добавить к сумме B[j]-ый элемент из A
}
}