Страница 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");
}