#include #include #define MAX_N 8 #define MAX_M 10 int arr[MAX_N][MAX_M] = { { 0, 1, 222, 3}, {10, 11, 12, 13}, {20, 21, 22, 23} }; int n = 3; int m = 4; void print() { printf("!!!! print() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("%3d ", arr[i][j]); } printf("\n"); } } void print0() { print(); } void fillIx10() { printf("!!!! fillIx10() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = i * 10 + j; } } } void print1() { SetConsoleCP(1251); SetConsoleOutputCP(1251); fillIx10(); } void fillZero() { printf("!!!! fillZero() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = 0; } } } void print2() { SetConsoleCP(1251); SetConsoleOutputCP(1251); fillZero(); } void randFill0_9() { printf("!!!! randFill() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = rand() % 100; } } } void print3() { SetConsoleCP(1251); SetConsoleOutputCP(1251); randFill0_9(); } void proizvedenie() { printf("!!!! *10() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (arr[i][j] % 2 != 0) { arr[i][j] *= 10; } } } } void print4() { SetConsoleCP(1251); SetConsoleOutputCP(1251); proizvedenie(); } void delenie() { printf("!!!! *10() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (arr[i][j] % 10 == 0) { arr[i][j] /= 10; } } } } void print5() { SetConsoleCP(1251); SetConsoleOutputCP(1251); delenie(); } int vvod() { // Ввод элементов массива printf("Введите элементы массива (%d x %d):\n", n, m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("Элемент [%d][%d]: \n", i, j); scanf_s("%d", &arr[i][j]); // Считывание элемента } } // Вывод элементов массива printf("Введенный массив:\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("%d ", arr[i][j]); // Вывод элемента } printf("\n"); } return 0; } void deleteRow(int delRow) { printf("!!!! deleteRow(%d) !!!!\n", delRow); for (int i = delRow; i < n - 1; i++) { for (int j = 0; j < m; j++) { arr[i][j] = arr[i + 1][j]; } } n--; } void print7() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int num; printf("Номер строки, которую нужно удалить: "); scanf_s("%d", &num); deleteRow(num); } void save() { // Выходной файл FILE* fout = NULL; errno_t err = fopen_s(&fout, "C:\\Users\\home-PC\\Desktop\\лабы\\arr11.txt", "wt"); if (err != 0 || fout == NULL) { printf("Выходной файл не создался\n"); return; } fprintf(fout, "%d ", n); fprintf(fout, "%d\n", m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { fprintf(fout, "%d ", arr[i][j]); } fprintf(fout, "\n"); } fclose(fout); } void load() { FILE* fin = NULL; errno_t err = fopen_s(&fin, "C:\\Users\\home-PC\\Desktop\\лабы\\arr11.txt", "rt"); if (err != 0 || fin == NULL) { printf("Входной файл не найден\n"); return; } fscanf_s(fin, "%d", &n); fscanf_s(fin, "%d", &m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { fscanf_s(fin, "%d", &arr[i][j]); } } fclose(fin); } void main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int item; do { printf("\n"); print(); printf("------------------------------\n"); printf("Выберите нужную вам операцию:\n"); printf("1: заполнить значениями i*10+j \n"); printf("2: заполнить нулями \n"); printf("3: заполнить случайными значениями до 100\n"); printf("4: все нечетные увеличить в 10 раз\n"); printf("5: все кратные 10 уменьшить в 10 раз\n"); printf("6: ввод массива\n"); printf("7: удалить строку\n"); printf("8: сохранить массив в файл\n"); printf("9: извлечь массив из файла\n"); printf("\n"); printf("0: Выйти из программы\n"); printf("Выбранная операция >>>>>> "); scanf_s("%d", &item); switch (item) { case 1: print1(); break; case 2: print2(); break; case 3: print3(); break; case 4: print4(); break; case 5: print5(); break; case 6: vvod(); break; case 7: print7(); break; case 8: save(); break; case 9: load(); break; } } while (item != 0); }