[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Компьютеры » Программирование » C++, C# » Помогите с задачами на массивы (С++)
Помогите с задачами на массивы
mitrofanoffcostya2015Дата: Понедельник, 16.11.2015, 23:21 | Сообщение # 1
НовичЁк
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Оффлайн
1.Помогите пожалуйста. Даны 2 массива. К(20) и М(20). из отрицательных элементов этих массивов создать массив Z(20), если чисел будет недостаточно, то добавлять -1.
2.Написать программу, которая запрашивает размерность квадратного двумерного массива, заполняет массив случайными числами от 2 до 6 и вычисляет сумму элементов главной диагонали.
3. Написать программу, которая запрашивает размерность двумерного массива, заполняет его случайными числами от 2 до 9 и вычисляет сумму элементов, сумма индексов у которых нечетная.

Заранее спасибо.
 
АлексейДата: Вторник, 17.11.2015, 01:06 | Сообщение # 2
Продвигающийся
Группа: Администраторы
Сообщений: 324
Награды: 4
Репутация: 1
Статус: Оффлайн
Первая задача:
Код
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;
}
Прикрепления: mass.cpp (3.2 Kb) · mass.noext (16.8 Kb)
 
Форум » Компьютеры » Программирование » C++, C# » Помогите с задачами на массивы (С++)
  • Страница 1 из 1
  • 1
Поиск: