Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_-_1_kurs / Основы С++.doc
Скачиваний:
117
Добавлен:
09.06.2015
Размер:
1.44 Mб
Скачать

42. Задано целое положительное число n. Cфоpмиpовать матpицу:

n n-1 n-2 . . . 0

0 n n-1 . . . 1

0 0 n . . . 2

. . . . . . . . . . . . . . . .

0 0 0 . . . n

//Программа №42

#include<iostream.h>

int i,j,k,n,x[100][100];

main()

{

cout << "Введите исло n=";

cin >> n;

for (i=0; i<=n; i++)

for (j=0; j<=n; j++)

x[i][j]=0;

for (i=0; i<=n; i++)

{

k=0;

for (j=i; j<=n; j++)

{

x[i][j]=n-k;

k++;

}//for (j=i; j<=n; j++)

}//for (i=0; i<=n; i++)

cout << "\nСформированная матрица:\n";

for (i=0; i<=n; i++)

{

for (j=0; j<=n; j++)

cout << x[i][j] << " ";

cout << "\n";

}//for (i=0; i<=n; i++)

cout << "\n\n";

return 0;

}

43. Опpеделить максимальные элементы в каждой стpоке матpицы и поменять их местами с элементами, расположенными на главной диагонали.

Обозначения: a[n,n] - матрица целых чисел; n - размерность матрицы; i,j - номера строк и столбцов матрицы; k - номер столбца, в котором находится максимальный элемент строки; max - максимальный элемент в строке матрицы.

// Программа №43

#include<iostream.h>

#include<stdlib.h>

int a[100][100];

int i,j,k,n,max;

main()

{

cout << "Введите кол-во строк и столбцов матрицы матрицы n =";

cin >> n;

for(i=0; i<n; i++)

for(j=0; j<n; j++)

a[i][j]=rand()%10;

cout << "\nИсходная матрица a[i,j]:\n";

for (i=0; i<n; i++)

{

for(j=0; j<n; j++)

cout << a[i][j] << " ";

cout << "\n\n";

}

cout << " \n ";

for (i=0;i<n;i++)

{

max=a[i][1];

k=1;

for (j=1;j<n;j++)

{

if (max<a[i][j])

{

max=a[i][j];

k=j;

}

}

}

if (k!=i)

{

a[i][k]=a[i][i];

a[i][i]=max;

}

cout << "\n";

cout << "Результат:\n";

for (i=0;i<n;i++)

{

for (j=0;j<n;j++)

{

cout << a[i][j] << " ";

}

cout << "\n\n";

}

return 0;

}

44. Опpеделить максимальный элемент в каждой стpоке матpицы и записать их в новый массив.

Обозначения: a[li,lj] - матрица целых чисел; li,lj - количество строк и столбцов матрицы; i,j - номера строк и столбцов матрицы; max - максимальный элемент в строке матрицы; b[li] - массив, элементы которого максимальные элементы в строках матрицы.

//Программа №44

#include<iostream.h>

#include<stdlib.h>

int i,j,li,lj,max,a[10][10],b[10];

main()

{

cout << "Введите количество строк матрицы li=";

cin >> li;

cout << "\nВведите количество столбцов матрицы lj=";

cin >> lj;

for (i=0; i<li; i++)

for (j=0; j<lj; j++)

a[i][j]=rand()%50;

cout << "\nИсходная матрица a[i,j]:\n";

for (i=0; i<li; i++)

{

for (j=0; j<lj; j++)

cout << a[i][j] << " ";

cout << "\n";

}//for (i=0; i<li; i++)

for (i=0; i<li; i++)

{

max=a[i][0];

for (j=1; j<lj; j++)

if (max<a[i][j]) max=a[i][j];

b[i]=max;

}//for (i=0; i<li; i++)

cout << "\nМаксимальные элементы в строках = ";

for (i=0; i<li; i++)

cout << b[i] << " ";

cout << "\n\n";

return 0;

}

45. Задана матpица целых чисел. Cфоpмиpовать массив, состоящий из номеpов стpок заданной матpицы, в котоpых есть хотя бы один нулевой элемент.

Обозначения: a[k,n] - матрица целых чисел; k,n - количество строк и столбцов матрицы; i,j - номера строк и столбцов матрицы; b[k] - массив, элементы которого номера строк матрицы a[k,n], в которых есть хотя бы один элемент равный нулю; p - количество нулевых элементов в матрице a[k,n].

// Программа №45

// Задана матрица целых чисел. Сформировать массив, состоящий

//из номеров строк заданной матрицы, в которых есть хотя бы

//один нулевой элемент.

//Обозначения:

//a[k][n] - матрица целых чисел;

//k - количество строк матрицы;

//n- количество столбцов матрицы;

//i,j - номера строк и столбцов матрицы;

// b[k] - масив, элементы которого номера строк матрицы, в ко-

//торых есть хотябы один элемент равный нулю;

//p- количество нулевых элемнтов в матрице a[k][n];

#include<iostream.h>

#include<stdlib.h>

int a[100][100];

int i,j,k,n,p;

int b[100];

main()

{

cout << "Введите количество строк матрицы k =";

cin >> k;

cout << "Введите количество столбцов матрицы n =";

cin >> n;

for(i=0; i<k; i++)

{

for(j=0; j<n; j++)

{

a[i][j]=rand()%100;

}

}

cout << "\nИсходная матрица a[i,j]:\n";

for (i=0; i<k; i++)

{

for (j=0; j<n; j++)

{

cout << a[i][j] << " ";

}

cout << "\n\n";

}

cout << " \n ";

p=0;

for (i=0;i<k;i++)

{

for (j=0;j<n;j++)

{

if (a[i][j]==0)

{

p=p+1;

b[p]=i;

break;

}

}

}

cout << "Результат: \n\n";

if (p==0)

cout << "В матрице НЕТ элемнтов равных 0 !!! \n";

else

{

cout << "Номер строки в которой есть элемент = 0> ";

for (i=i;i<=p;i++)

{

cout << b[k] << "\n";;

}

}

cout <<"\n\n\n";

return 0;

}