Задание 1. Дан двумерный массив размерностью 5x6, заполненный целыми числами, введёнными с клавиатуры. Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца.
Входные данные:
matr[5][6] - двумерный массив.
Выходные данные:
mas[6] - одномерный массив.
Текст программы:
#include
#include
#include
#define N 5
#define M 6
void main(void)
{
int matr[N][M];
int mas[M];
int i,j;
do{
clrscr();
printf("Введите двумерный массив ");
for(i=0;i for(j=0;j {
scanf("%d",&matr[i][j]); } printf("
двумерный
массив:
"); for(i=0;i { for(j=0;j
printf("%7d",matr[i][j]); printf("
"); } printf("
массив
наибольших по модулю элементов:
"); for(j=0;j { mas[j]=matr[0][j]; for(i=0;i
if(abs(matr[i][j])>abs(mas[j])) mas[j]=matr[i][j]; printf("%7d",mas[j]); } printf("
1 - повторить"); }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 #include #include 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)
"); scanf("%d %d",&n,&m); printf("Введите массив
"); for(i=0;i for(j=0;j
scanf("%d",&matr[i][j]); printf("
Определить, есть ли в
данном массиве столбец, в котором
равное количество положительных
и отрицательных элементов.
"); for(j=0;j { otr=0; pol=0; for(i=0;i { if(matr[i][j]<0) ++otr; if(matr[i][j]>0) ++pol; } if(pol==otr) strcat(s," есть"); else strcat(s," нет"); } printf("
"); for(i=0;i { for(j=0;j printf("%6d",matr[i][j]); printf("
"); } printf("%s",s); printf("
1 - повторить"); }while(getch()=="1"); } Блок-схема: Тестирование: Определить, есть ли в данном массиве столбец, в котором равное количество положительных и отрицательных элементов. 0 1 -2 3 4 0 2 -4 5 -8 0 0 9 -7 0 0 -3 4 0 0 есть нет есть нет есть Задание 3. Дан двумерный массив размерностью 8x7. а). Удалить все столбцы, а которых первый элемент больше последнего. б). Заменить все элементы первых трёх столбцов на их квадраты. Входные данные: matr[8][7] - двумерный
массив. Функции: Print - вывод массив на экран. Текст программы: #include #include #define N 8 #define M 7 void Print(int matr[][M],int m) { int i,j; for(i=0;i for(j=0;j
printf("%6d",matr[i][j]); printf("
"); } } void main(void) { int m; int i,j; int matr[N][M]; int r,t; do{ m=M; clrscr(); printf("Введите массив
"); for(i=0;i for(j=0;j
scanf("%d",&matr[i][j]); } clrscr(); printf(" массив
"); Print(matr,m); for(j=0;j {
if(matr[0][j]>matr[N-1][j]) { for(t=0;t for(r=j;r matr[t][r]=matr[t][r+1]; --m; --j; } } printf("а) .Удалить все столбцы, а
которых первый элемент больше последнего.
"); Print(matr,m); for(j=0;j<3;j++) for(i=0;i { matr[i][j]*=matr[i][j]; } printf("б). Заменить все элементы
первых трёх столбцов на их квадраты.
"); Print(matr,m); printf("
1 - повторить"); }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