#define _CRT_SECURE_NO_WARNINGS #include #include #define MAX_N 8 #define MAX_M 10 int arr[MAX_N][MAX_M]; int arr1[MAX_N][MAX_M*2]; int n = 0; int m = 0; int i, j, k, column; void keyboardInput(); void print(); void fillIx10(); void fillZero(); void randFill0_9(); void NechetX10(); void Krat10(); void save(); void load(); void deleteRow(int delRow); void ChetNet(); 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: заполнить случайными значениями\n"); printf("4: все нечётные увеличить в 10 раз\n"); printf("5: все кратные 10 уменьшить в 10 раз\n"); printf("6: ввести массив с клавиатуры\n"); printf("7: сохранить массив\n"); printf("8: загрузить массив\n"); printf("9: удалить заданную строку\n"); printf("10: продублировать заданный столбец\n"); printf("11: обнулить элементы тех столбцов, в которых нет ни одного четного элемента\n"); printf("\n"); printf("0: Выйти из программы\n"); printf("Выбранная операция >>>>>> "); scanf_s("%d", &item); switch (item) { case 1: fillIx10(); break; case 2: fillZero(); break; case 3: { randFill0_9(); break; } break; case 4: { NechetX10(); break; } case 5: { Krat10(); }break; case 6: { keyboardInput(); break; } case 7: { save(); break; } break; case 8: { load(); break; } case 9: int num; printf("Номер строки, которую нужно удалить: "); scanf_s("%d", &num); deleteRow(num); print(); break; case 10: { int a = 0; printf("Номер дублируемого столбца = "); scanf_s("%d", &a); for (int i = 0; i < n; i++) { for (int j = a; j < (m + 1); j++) { arr[i][m] = arr[i][a]; } } m++; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("%d ", arr[i][j]); } printf("\n"); } }break; case 11: { ChetNet(); }break; } } while (item != 0); } void keyboardInput() { printf("n = "); scanf_s("%d", &n); printf("m = "); scanf_s("%d", &m); printf("input values: "); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf_s("%d", &arr[i][j]); } } } 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 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 fillZero() { printf("!!!! fillZero() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = 0; } } } void randFill0_9() { printf("!!!! randFill0_9() !!!!\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = rand() % 10; } } } void NechetX10() { printf("!!!! NechetX10() !!!!\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 Krat10() { printf("!!!! Krat10() !!!!\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 save() { FILE* fout = fopen("d:\\zagryzka s interneta\\arr1.txt", "wt"); if (fout == NULL) { printf("Выходной файл не создался"); 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 = fopen("d:\\zagryzka s interneta\\arr1.txt", "rt"); if (fin == NULL) { printf("Входной файл не найден"); return; } fscanf(fin, "%d", &n); fscanf(fin, "%d", &m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { fscanf(fin, "%d", &arr[i][j]); } } fclose(fin); }