Страница 1 из 1

Массивы 2-мер.

Добавлено: 29 ноя 2009, 11:16
coltrane
(Visual C++ 2005)
1. При помощи генератора случайных величин ввести матрицу A(3,3) и вывести ее на печать в форматированном виде. Найти произведение элементов, сумма индексов которых меньше 4.

2. Дан массив Y(5,4). Сформировать новый одномерный массив A из элементов исходного массива, не превышающих произведение своих индексов. Вывести на печать исходный и результирующий массивы.

3. Вычислить сумму и количество положительных элементов матрицы, нахо-
дящихся над главной диагональю.


Большая просьба помочь как можно скорее и,если возможно,бескорыстно.Причина невозможности сделать самому в отъезде к родным.Не судите строго.
Наработки вывести не могу, не успеваю,т.к. не на постоянном месте.

Re: Массивы 2-мер.

Добавлено: 01 дек 2009, 22:41
qstorm
вроде так:

1.

Код: Выделить всё

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

void main(void){

    setlocale(0,"Russian");
    //матрица 3х3
    const int n = 3;
    int mass[n][n];
    //результат произведения
    int multip = 1;

    srand((unsigned)time(NULL));
    //заполнение матрицы
    for (int i = 0; i < n; i++)
    {
        cout<<"| ";
        for (int j = 0; j < n; j++)
        {
            mass[i][j] = rand()%6;
            cout<< mass[i][j]<<" ";
            //хз в программе счет с 0, в математике с 1
            //если сумма индексов  меньше 4
            if(i+1+j+1<4)
                //делаем произведение
                multip *= mass[i][j];
        }
        cout<<" |\n";
    }
    //результат
    cout<<"Произведение элементов, у которых сумма индексов < 4, равно "<<multip<<endl;


    system("pause");
}
 
2.

Код: Выделить всё

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

void main(void){

    setlocale(0,"Russian");
    //двумерный массив
    int mass[5][4];
    //итератор и результирующий массив
    int iterator_resultmass=0;
    int resultmass[20];

    srand((unsigned)time(NULL));
    cout<<"Дан массив: \n";
    //заполнение массива
    for (int i = 0; i < 5; i++)
    {
        cout<<"| ";
        for (int j = 0; j < 4; j++)
        {
            mass[i][j] = rand()%10;
            cout<< mass[i][j] <<" ";
            //решайте сами откуда ведется отчет с 0 или с 1
            //если произведение индексов меньше значения, добавляем в результирующий массив
            if((i+1)*(j+1) < mass[i][j]){
    
                resultmass[iterator_resultmass++] = mass[i][j];
            }
        }
        cout<<" |\n";
    }

    //результата
    cout<<"Массив из элементов исходного массива, не превышающих произведение своих индексов: \n";
    for (int k=0; k<20; k++)
    {
        //вывод не всех элементов
        if(resultmass[k]>0)
            cout<<resultmass[k]<<" ";
    }
    cout<<"\n";
    system("pause");
}
 
3.

Код: Выделить всё

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

void main(void){

    setlocale(0,"Russian");
    //размер матрицы
    const int n = 5;
    //матрица
    int mass[n][n];
    //кол-во элементов и результирующая сумма
    int resultcount=0;
    int resultsumm=0;
    
    //рандомизация
    srand((unsigned)time(NULL));
    cout<<"Дана матрица: \n";
    //генерация матрицы
    for (int i = 0; i < n; i++)
    {
        cout<<"| ";
        for (int j = 0; j < n; j++)
        {
            mass[i][j] = rand()%10-5;
            if (mass[i][j] >= 0)
                cout<<"   "<< mass[i][j];
            else 
                cout <<"  "<< mass[i][j];
            //если число находится над главной диагональю и положительное
            if((i+i)<(i+j) && mass[i][j] >0){    
                //отмечаем звездочкой нужные нам элементы
                cout<<"*";
                resultcount++;
                resultsumm+=mass[i][j];

                
            }
        }
        cout<<" |\n";
    }
    //результат
    cout<<"\n----------------------------------------------"<<endl;
    cout<<"сумма элементов над главной диагональю > "<< resultsumm << "\nКол-во элементов над главной диагональю > " <<resultcount<<endl; 

    system("pause");
}