Завдання 1. Дан двовимірний масив розмірністю 5x6, заповнений цілими числами, введеними з клавіатури. Сформувати одновимірний масив, кожен елемент якого рівний найбільшому за модулем елементу відповідного стовпця.
Вхідні дані:
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. Дан двовимірний масив розмірністю 8x7.
а). Видалити всі стовпці, а яких перший елемент більше останнього.
б). Замінити всі елементи перших трьох стовпців на їх квадрати.
Вхідні дані:
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
Вхідні дані:
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. Дан двовимірний масив розмірністю 8x7.
а). Видалити всі стовпці, а яких перший елемент більше останнього.
б). Замінити всі елементи перших трьох стовпців на їх квадрати.
Вхідні дані:
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