Первая задача:
Код
cout << "Даны 2 массива. К(20) и М(20). Из отрицательных элементов этих массивов создать массив Z(20), если чисел будет недостаточно, то добавлять -1." << endl;
int K[20], M[20], Z[20];
for (int i=0;i<20;i++)
{
K [i]= 1 + rand() %99;
M [i]= 1 + rand() %99;
Z [i]= -1;
}
for (int i=0;i<20;i++)
{
int j = rand() %20;
K[j]= K[j]*(-1);
int jj = rand() %20;
M [jj]= M[jj]*(-1);
}
cout << "Начальные массивы." << endl;
for (int i=0;i<20;i++) { cout << K [i]<< "; "; }
cout << endl;
for (int i=0;i<20;i++) { cout << K [i]<< "; "; }
cout << endl;
int j=0;
for (int i=0;i<20;i++)
{
if (j == 20) { break; }
else if (K [i]< 0) { Z [j]= K[i]; j++; }
else if (M [i]< 0) { Z [j]= M[i]; j++; }
}
cout << "Результат: ";
for (int i=0;i<20;i++) { cout << Z [i]<< "; "; }
cout << endl;
Вторая задача:
Код
cout << "Написать программу, которая запрашивает размерность квадратного двумерного массива, заполняет массив случайными числами от 2 до 6 и вычисляет сумму элементов главной диагонали." << endl;
int N;
cout << "Введите, пожалуйста, размерность массива: "; cin >> N;
int a[N][N], sum=0;
cout << "Сгенерированный массив: " << endl;
for (int i=0;i<N;i++)
{
for (int j=0;j<N;j++)
{
a [i][j]= (2 + rand() %5);
cout << a [i][j]<< "; ";
if (i == j) { sum = sum + a[i][j]; }
}
cout << endl;
}
cout << "Сумма элементов главной диагонали - " << sum << endl;
Третья задача:
Код
cout << "Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными числами от 2 до 9 и вычисляет сумму элементов, сумма индексов у которых нечетная" << endl;
int N;
cout << "Введите размерность массива:"; cin >> N;
int a[N][N], sum = 0;
cout << "Исходный массив:" << endl;
for (int i=0;i<N;i++)
{
for (int j=0;j<N;j++)
{
a [i][j]= 2 + rand() % 8;
if ( ((i+j) % 2) != 0) { sum = sum + a[i][j]; }
cout << a [i][j]<< "; ";
}
cout << endl;
}
cout << "Сумма элементов с нечетной суммой индексов - " << sum << endl;
Полный код программы:
Код
#include <fstream>
#include <locale.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <unistd.h>
#include <sstream>
using namespace std;
void z1()
{
cout << "Даны 2 массива. К(20) и М(20). Из отрицательных элементов этих массивов создать массив Z(20), если чисел будет недостаточно, то добавлять -1." << endl;
int K[20], M[20], Z[20];
for (int i=0;i<20;i++)
{
K [i]= 1 + rand() %99;
M [i]= 1 + rand() %99;
Z [i]= -1;
}
for (int i=0;i<20;i++)
{
int j = rand() %20;
K[j]= K[j]*(-1);
int jj = rand() %20;
M [jj] = M[jj]*(-1);
}
cout << "Начальные массивы." << endl;
for (int i=0;i<20;i++) { cout << K [i]<< "; "; }
cout << endl;
for (int i=0;i<20;i++) { cout << K [i]<< "; "; }
cout << endl;
int j=0;
for (int i=0;i<20;i++)
{
if (j == 20) { break; }
else if (K [i]< 0) { Z [j]= K[i]; j++; }
else if (M [i]< 0) { Z [j]= M[i]; j++; }
}
cout << "Результат: ";
for (int i=0;i<20;i++) { cout << Z [i]<< "; "; }
cout << endl;
}
void z2()
{
cout << "Написать программу, которая запрашивает размерность квадратного двумерного массива, заполняет массив случайными числами от 2 до 6 и вычисляет сумму элементов главной диагонали." << endl;
int N;
cout << "Введите, пожалуйста, размерность массива: "; cin >> N;
int a[N][N], sum=0;
cout << "Сгенерированный массив: " << endl;
for (int i=0;i<N;i++)
{
for (int j=0;j<N;j++)
{
a [i][j]= (2 + rand() %5);
cout << a [i][j]<< "; ";
if (i == j) { sum = sum + a[i][j]; }
}
cout << endl;
}
cout << "Сумма элементов главной диагонали - " << sum << endl;
}
void z3()
{
cout << "Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными числами от 2 до 9 и вычисляет сумму элементов, сумма индексов у которых нечетная" << endl;
int N;
cout << "Введите размерность массива:"; cin >> N;
int a[N][N], sum = 0;
cout << "Исходный массив:" << endl;
for (int i=0;i<N;i++)
{
for (int j=0;j<N;j++)
{
a [i][j]= 2 + rand() % 8;
if ( ((i+j) % 2) != 0) { sum = sum + a[i][j]; }
cout << a [i][j]<< "; ";
}
cout << endl;
}
cout << "Сумма элементов с нечетной суммой индексов - " << sum << endl;
}
int main(int argc, char *argv[])
{
srand(time(0));
std::istringstream is(argv[1]);
int ar;
if (is >> ar)
{
if (ar == 1) { z1(); }
else if (ar == 2) { z2(); }
else if (ar == 3) { z3(); }
else { cout << "Аргумент должен быть числом в диапазоне от 1 до 3."<< endl; }
}
else { cout << "Аргумент должен быть числом в диапазоне от 1 до 3."<< endl; }
return 0;
}