Задается 2 массива a и b, нужно вывести массив имеющий наименьшее кол-во положительных элементов. Пример: Массив a { 1, 2,3}, массив b { -4, -5, 6} программа выводит рандомное число -33686019.
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int i, n, el1 = 0, el2 = 0, z, f;
cout << " kol-vo elementov v massive n=";
cin >> n;
int *a = new int[n];
int *b = new int[n];
cout << " Vvedi elemeti dlya I massiva: ";
for (i = 0; i < n; i++) cin >> a[i];
cout << " Vvedi elemeti dlya II massiva: ";
for (i = 0; i < n; i++) cin >> b[i];
for (i = 0; i < n; i++)
{
if (a[i] > 0) el1++;
if (b[i] > 0) el2++;
}
if (el1 > el2) cout << "1 massive \n:" << a[i] << ' ';
if (el1 < el2) cout << "2 massive \n:" << b[i] << ' ';
if (el1 == el2) cout << "\n Oni ravni";
delete[]a;
delete[]b;
return 0;
system("pause");
}
Значение i
к тому моменту как вы делаете
if (el1 > el2) cout << "1 massive \n:" << a[i] << ' ';
if (el1 < el2) cout << "2 massive \n:" << b[i] << ' ';
if (el1 == el2) cout << "\n Oni ravni";
равно n
, т.е. является недопустимым индексом для доступа в ваши массивы. В результате ваша попытка вывести элемент a[i]
(или b[i]
) производит доступ за пределы массива и выводит содержащийся там мусор. Этот мусор и есть ваше "рандомное число".
Зачем вы вообще пытаетесь выводить этот странный элемент a[i]
? Вывод массива делается так же, как вы делали и ввод массива: вручную, поэлементно.
P.S. Зачем нужны переменные z
и f
? И какой смысл вы вкладываете в system("pause");
после return 0;
?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть Windows API окно обернутое в класСоздается в Windows API main методе например так:
Всем привет! Может кто сталкивался или знает куда копать?