Работа над массивами с помощью языка С++

Задание 1. Дан двумерный массив размерностью 5×6, заполненный целыми числами, введенными с клавиатуры. Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца.

Входные данные:

Matr[5][6] – двумерный массив.

Выходные данные:

Mas[6] – одномерный массив.

Текст программы:

#include <stdio. h>

#include <conio. h>

#include <math. h>

#define N 5

#define M 6

Void main(void)

{

Int matr[N][M];

Int mas[M];

Int i, j;

Do{

Clrscr();

Printf(“Введите двумерный массив \n”);

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

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

{

scanf(“%d”,&;matr[i][j]);

}

Printf(“\n двумерный массив:\n”);

For(i=0;i<N;i++)

{

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

printf(“%7d”,matr[i][j]);

printf(“\n”);

}

Printf(“\n массив наибольших по модулю элементов:\n”);

For(j=0;j<M;j++)

{

mas[j]=matr[0][j];

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

if(abs(matr[i][j])>abs(mas[j])) mas[j]=matr[i][j];

printf(“%7d”,mas[j]);

}

Printf(“\n\n1 – повторить”);

}while(getch()==’1′);

}

Блок-схема:

Тестирование:

Двумерный массив:

1 -3 5 -7 0 0

0 5 8 -9 3 0

3 4 -8 4 3 0

-4 3 0 7 3 0

0 3 3 7 1 0

Массив наибольших по модулю элементов:

-4 5 8 -9 3 0

Задание 2. Дан двумерный массив n * m. Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов.

Входные данные:

Matr[n][m] – двумерный массив,

N, m – размер массива.

S[60] – строка.

Текст программы:

#include <stdio. h>

#include <conio. h>

#include <string. h>

Void main(void)

{

Int i, j;

Int n, m;

Int matr[10][10];

Int pol, otr;

Char s[60];

Do{

Strcpy(s,0);

Clrscr();

Printf(“Введите размер массива (n*m)\n”);

Scanf(“%d %d”,&;n,&;m);

Printf(“Введите массив\n”);

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

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

scanf(“%d”,&;matr[i][j]);

Printf(“\nОпределить, есть ли в данном массиве столбец,\

В котором\nравное количество положительных и отрицательных элементов.\n”);

For(j=0;j<m;j++)

{

otr=0;

pol=0;

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

{

if(matr[i][j]<0) ++otr;

if(matr[i][j]>0) ++pol;

}

if(pol==otr) strcat(s,” есть”);

else strcat(s,” нет”);

}

Printf(“\n”);

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

{

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

printf(“%6d”,matr[i][j]);

Printf(“\n”);

}

Printf(“%s”,s);

Printf(“\n\n1 – повторить”);

}while(getch()==’1′);

}

Блок-схема:

Тестирование:

Определить, есть ли в данном массиве столбец, в котором

Равное количество положительных и отрицательных элементов.

0 1 -2 3 4

0 2 -4 5 -8

0 0 9 -7 0

0 -3 4 0 0

есть нет есть нет есть

Задание 3. Дан двумерный массив размерностью 8×7.

А). Удалить все столбцы, а которых первый элемент больше последнего.

Б). Заменить все элементы первых трех столбцов на их квадраты.

Входные данные:

Matr[8][7] – двумерный массив.

Функции:

Print – вывод массив на экран.

Текст программы:

#include <stdio. h>

#include <conio. h>

#define N 8

#define M 7

Void Print(int matr[][M],int m)

{

Int i, j;

For(i=0;i<N;i++) {

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

printf(“%6d”,matr[i][j]);

printf(“\n”);

}

}

Void main(void)

{

Int m;

Int i, j;

Int matr[N][M];

Int r, t;

Do{

M=M;

Clrscr();

Printf(“Введите массив\n”);

For(i=0;i<N;i++)

for(j=0;j<m;j++) {

scanf(“%d”,&;matr[i][j]);

}

Clrscr();

Printf(” массив\n”);

Print(matr, m);

For(j=0;j<m;j++)

{

if(matr[0][j]>matr[N-1][j])

{

for(t=0;t<N;t++)

for(r=j;r<m-1;r++)

matr[t][r]=matr[t][r+1];

–m;

–j;

}

}

Printf(“а) .Удалить все столбцы, а которых первый элемент больше последнего.\n”);

Print(matr, m);

For(j=0;j<3;j++)

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

{

matr[i][j]*=matr[i][j];

}

Printf(“б). Заменить все элементы первых трех столбцов на их квадраты.\n”);

Print(matr, m);

Printf(“\n\n1 – повторить”);

}while(getch()==’1′);

}

Блок – схема :

Функция Print

Тестирование:

Массив

1 2 3 4 5 6 7

-8 0 5 5 4 4 5

4 5 5 5 5 5 5

5 5 5 -7 5 5 5

9 4 4 5 0 5 3

5 6 3 4 5 4 5

6 7 8 9 0 4 8

-4 5 9 0 9 9 0

А) .Удалить все столбцы, в которых первый элемент больше последнего.

2 3 5 6

0 5 4 4

5 5 5 5

5 5 5 5

4 4 0 5

6 3 5 4

7 8 0 4

5 9 9 9

Б). Заменить все элементы первых трех столбцов на их квадраты.

4 9 25 6

0 25 16 4

25 25 25 5

25 25 25 5

16 16 0 5

36 9 25 4

49 64 0 4

25 81 81 9


Работа над массивами с помощью языка С++