@rostyslav5

Одномерные массивы C++ почему не вычисляет произведение отрицательных элементов массива М и максимальный элемент массива К?

Создать массив К из [10] путем ввода с клавиатуры. Вынести массив на экран и одну строку Создать и вывести массив М с [12] элементов (произвольные числа на промежутке (-1000; 1500]). Вывести на экран таблицу индекс элемента, сам элемент.
Найти произведение отрицательных элементов массива М и максимальный элемент массива К.
#include <iostream>
#include <cmath>
#define k1 10

using namespace std;

int main(int argc, char** argv) {
	system("color 0A");
	setlocale(0, "rus");
	int K[k1];
	double n = 10;
	cout << "vvedit 10 chisel";
		for (int i = 0; i < k1; i++) {
			cin >> K[i];
		}
		for (int i = 0; i < k1; i++) {
			cout << K[i] << "  ";
		}
		int M[12];
		srand(time(0));
		for (int i = 0; i < 12; i++) {
			M[i] = rand() % 2501 - 1000;
			cout << "[" << i << "]  " << M[i] << "\n";
		}
		int Dob_v = 0, flg = 0, max=K[0];
		for (int i = 0; i < 12; i++) {
			if (M[i] < 0)
			{
				flg = 1;
				Dob_v *= M[i];
			}

		for (int i = 0; i < 12; i++) {
			if (K[i] > max)
			{
				max = K[i];
			}
		}
}
		if (flg)
			cout << endl << "Добуток вiд'ємних M: " << Dob_v << endl;
		else
			cout << endl << "Немає вiдємних M!" << endl;
		cout << "Максимальне K: " << max << endl;
}
  • Вопрос задан
  • 441 просмотр
Решения вопроса 1
@galaxy
int Dob_v = 0 ...
for (int i = 0; i < 12; i++) {
...
  Dob_v *= M[i]

Переполнение может быть, однако.

for (int i = 0; i < 12; i++) {
      if (K[i] > max)
      {
        max = K[i];
      }

почему i < 12 ?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
С произведением все просто - вы инициализировали Dob_v нулем, а произведение любого числа с нулем = нулю. Вот у вас всегда нулевой результат. Инициализируйте Dob_v единицей.
У вас путаница в двух последних циклах - разберитесь с закрывающими скобками - получается цикл по K вложен в цикл по M. Причем в цикле по К не правильное условие, т.к. К содержит всего 10 элементов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы