Сформировать двумерный массив. Удалить из него все столбцы, в которых встречается заданное число.
Ребят, помогите!
Другие языки программирования и технологии
Динамические массивы. СИ
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <locale.h>
#include <conio.h>
void main() {
int ** a, ** t, row, col, ncol, num, n, m, next = 0, flag;
srand((unsigned)time(NULL));
row = rand() % 4 + 4;
Sleep(1001);
col = rand() % 6 + 9;
a = (int **)calloc(row, sizeof(int *));
for (n = 0; n < row; n++, printf("\n")) {
a[n] = (int *)calloc(col, sizeof(int));
for (m = 0; m < col; m++) {
a[n][m] = rand() % 10;
printf("%d ", a[n][m]);
} } setlocale(LC_CTYPE, "Russian_Russia.1251");
printf("\n Введите заданное число: ");
while (!scanf_s("%d", &num)){
printf("\a Ошибка! Повторите ввод: ");
fflush(stdin);
} t = (int **)calloc(row, sizeof(int *));
for (n = 0; n < row; n++) {
t[n] = (int *)calloc(col, sizeof(int));
for (m = 0; m < col; m++) t[n][m] = a[n][m];
} ncol = col;
for (m = 0; m < col; m++) for (n = 0; n < row; n++) if (t[n][m] == num) { --ncol; break; }
if (ncol < col) {
for (n = 0; n < row; n++) free(a[n]);
free(a);
a = (int **)calloc(row, sizeof(int *));
for (n = 0; n < row; n++) a[n] = (int *)calloc(ncol, sizeof(int));
} for (m = 0; m < col; m++) {
flag = 1;
for (n = 0; n < row; n++) if (t[n][m] == num) { flag = 0; break; }
if (flag) { for (n = 0; n < row; n++) a[n][next] = t[n][m];++next; }
} for (n = 0; n < row; n++) free(t[n]);
free(t);
col = ncol;
printf("\n");
for (n = 0; n < row; n++, printf("\n")) for (m = 0; m < col; m++) printf("%d ", a[n][m]);
for (n = 0; n < row; n++) free(a[n]);
free(a);
_getch();
}
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <locale.h>
#include <conio.h>
void main() {
int ** a, ** t, row, col, ncol, num, n, m, next = 0, flag;
srand((unsigned)time(NULL));
row = rand() % 4 + 4;
Sleep(1001);
col = rand() % 6 + 9;
a = (int **)calloc(row, sizeof(int *));
for (n = 0; n < row; n++, printf("\n")) {
a[n] = (int *)calloc(col, sizeof(int));
for (m = 0; m < col; m++) {
a[n][m] = rand() % 10;
printf("%d ", a[n][m]);
} } setlocale(LC_CTYPE, "Russian_Russia.1251");
printf("\n Введите заданное число: ");
while (!scanf_s("%d", &num)){
printf("\a Ошибка! Повторите ввод: ");
fflush(stdin);
} t = (int **)calloc(row, sizeof(int *));
for (n = 0; n < row; n++) {
t[n] = (int *)calloc(col, sizeof(int));
for (m = 0; m < col; m++) t[n][m] = a[n][m];
} ncol = col;
for (m = 0; m < col; m++) for (n = 0; n < row; n++) if (t[n][m] == num) { --ncol; break; }
if (ncol < col) {
for (n = 0; n < row; n++) free(a[n]);
free(a);
a = (int **)calloc(row, sizeof(int *));
for (n = 0; n < row; n++) a[n] = (int *)calloc(ncol, sizeof(int));
} for (m = 0; m < col; m++) {
flag = 1;
for (n = 0; n < row; n++) if (t[n][m] == num) { flag = 0; break; }
if (flag) { for (n = 0; n < row; n++) a[n][next] = t[n][m];++next; }
} for (n = 0; n < row; n++) free(t[n]);
free(t);
col = ncol;
printf("\n");
for (n = 0; n < row; n++, printf("\n")) for (m = 0; m < col; m++) printf("%d ", a[n][m]);
for (n = 0; n < row; n++) free(a[n]);
free(a);
_getch();
}
Да там писать-то - раз плюнуть. Только что печатать надо, а думать не надо...
Похожие вопросы
- вопрос о динамических массивах в fortran
- Помогите с программой на Си. (создание многомерных динамических массивов)
- динамический массив в Visual C++
- Написать программу в VBA арифметической прогрессии в динамическом массиве.
- С++: Как изменять размеры многомерных динамических массивов по ходу выполнения программы?
- Вычислить сумму нечетных элементов в программа С++ .Через статический и динамический массив! Вот я сам написал проверьте
- С++ Динамический массив
- Динамический массив. help
- Программирование С++ Что такое Динамические массивы?
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.