//#include //#include // //#define NUM_ELEMENTS 10 // //int arr[NUM_ELEMENTS]; //int n = 0; // // //void printElements(); //void keyboardInput(); //void oddsX10(); //int findMin(); //int more10(); //int findLastEven(); //int findIndexMin(); //void chetnaminus(); //int findmenshe4(); //int variant1(); //void deletElement(int delIndex); //void insertElement(int insIndex, int value); //int deletfindMin(); //void variant_5(); //int Findnechet(); // //void main() { // SetConsoleCP(1251); // SetConsoleOutputCP(1251); // int item; // do { // printf("\n"); // printf("------------------------------\n"); // printf("Содержимое массива:"); // printElements(); // printf("Выберите нужную вам операцию:\n"); // printf("1: Ввести с клавиатуры массив\n"); // printf("2: x10 для всех нечетных элементов\n"); // printf("3: Найти минимальный элемент\n"); // printf("4: Сколько элементов > 10\n"); // printf("5: Увеличивать в 2 раза последний четный\n"); // printf("6: Сколько четных левее минимального\n"); // printf("7: Все четные элементы массива умножить на -1\n"); // printf("8: Все элементы массива, имеющие значения < 4, заменить на 4\n"); // printf("9: Все четные элементы массива обнулить\n"); // printf("11: Удаление заданного элемента массива\n"); // printf("12: Вставка нового элемента в заданное место\n"); // printf("13: Удаление минимального элемента\n"); // printf("14: Перед минимальным элементом вставить 0\n"); // printf("15: Удалить первый из нечетных элементов\n"); // printf("\n"); // printf("0: Выйти из программы\n"); // printf("Выбранная операция >>>>>> "); // // scanf_s("%d", &item); // // switch (item) { // case 1: // keyboardInput(); // break; // // case 2: // oddsX10(); // break; // // case 3: // { // int min = findMin(); // printf("min = %d\n", min); // } // break; // // case 4: // { // int i1 = more10(); // printf(" %d элементов > 10\n", i1); // } // break; // // case 5: // { // int index = findLastEven(); // if (index >= 0) { // arr[index] *= 2; // } // } // break; // // case 6: // { // int index = findIndexMin(); // printf("Индекс минимального элемента = %d\n", index); // // int cnt = 0; // for (int i = 0; i < index; i++) { // if (arr[i] % 2 == 0) { // cnt++; // } // } // printf("Левее минимального %d четных элементов\n", cnt); // } // break; // // case 7: // chetnaminus(); // break; // // case 8: // findmenshe4(); // break; // // case 9: // variant1(); // break; // // case 11: // { // printf("Индекс удаляемого элемента = "); // int index; // scanf_s("%d", &index); // // deletElement(index); // } // break; // // case 12: // { // printf("Перед каким элементом неужно вставить новый? Индекс = "); // int index; // scanf_s("%d", &index); // // printf("Значение, которое нужно вставить = "); // int value; // scanf_s("%d", &value); // // insertElement(index, value); // } // break; // // case 13: { // int min = deletfindMin(); // deletElement(min); // break; // } // case 14: // { // int indexMin = findIndexMin(); // printf("Индекс минимального элемента = %d\n", indexMin); // // insertElement(indexMin, 0); // } // break; // // case 15: // int nechet = Findnechet(); // // deletElement(nechet); // break; // } // } while (item != 0); //} // // // //void keyboardInput() { // printf("n = "); // scanf_s("%d", &n); // // printf("input %d values: ", n); // for (int i = 0; i < n; i++) { // scanf_s("%d", &arr[i]); // } //} // //void oddsX10() { // for (int i = 0; i < n; i++) { // if (arr[i] % 2 == 1) { // arr[i] *= 10; // } // } //} // //void printElements() { // printf("< "); // for (int i = 0; i < n; i++) { // printf("%d ", arr[i]); // } // printf(">\n"); //} // //int findMin() { // int min = arr[0]; // for (int i = 0; i < n; i++) { // if (arr[i] < min) { // min = arr[i]; // } // } // return min; //} // // // //int more10() { // int i1 = 0; // for (int i = 0; i < n; i++) { // if (arr[i] > 10) { // i1 += 1; // } // } // return i1; //} // //int findLastEven() { // for (int i = n - 1; i < n; i--) { // if (arr[i] % 2 == 0) { // return i; // } // } // return -1; //} // //int findIndexMin() { // int min = arr[0]; // int indexMin = 0; // for (int i = 1; i < n; i++) { // if (arr[i] < min) { // min = arr[i]; // indexMin = i; // } // } // return indexMin; //} // //void chetnaminus() { // for (int i = 0; i < n; i++) { // if (arr[i] % 2 == 0) { // arr[i] = arr[i] * (-1); // } // } //} // //int findmenshe4() { // for (int i = 0; i < n; i++) { // if (arr[i] < 4) { // arr[i] = 4; // } // } // return 4; //} // //int variant1() { // for (int i = 0; i < n; i++) { // if (arr[i] % 2 == 0) { // arr[i] = 0; // } // } // return 0; //} // //void deletElement(int delIndex) { // for (int i = delIndex; i < n - 1; i++) { // arr[i] = arr[i + 1]; // } // n--; //} // //void insertElement(int insIndex, int value) { // for (int i = n; i > insIndex; i--) { // arr[i] = arr[i - 1]; // } // n++; // arr[insIndex] = value; //} // //int deletfindMin() { // int minNum1 = arr[0]; // int saveNum = 0; // for (int i = 0; i < n; i++) { // if (arr[i] < minNum1) { // minNum1 = arr[i]; // saveNum = i; // } // } // return saveNum; //} // // // //int Findnechet() { // for (int i = 0; i < n; i++) { // if (arr[i] % 2 != 0) { // return i; // } // } // return -1; //} // #define _CRT_SECURE_NO_WARNINGS #include #include #include #define max_n 10 #define max_m 10 int arr[max_n][max_m] = { { 1, 5, 3, 4}, { 76, 88, 89 }, { 9, 8, 3, 8 } }; 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("%4d", arr[i][j]); } printf("\n"); } } void fillix10() { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = i * 10 + j; } } } void fillzero() { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = 0; } } } void random() { for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { arr[i][j] = rand() % 10; } } } void odd_numbers() { 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 multiples_10() { 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 enterinf_array() { printf("\nВведите количество строк = "); scanf_s("%d", &n); printf("\nВведите количество столбцов = "); scanf_s("%d", &m); for (int i = 0; i < n; i++) { printf("Введите %d строку массива ", i + 1); for (int j = 0; j < m; j++) { scanf_s("%d", &arr[i][j]); } } } // сохранение состояния void save() { // выходной файл FILE* fout = fopen("c:\\fist\\оаип\\файл\\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("c:\\fist\\оаип\\файл\\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); } void deletrow(int 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 duplicatecolumn(int dupcol) { for (int i = 0; i < n; i++) { for (int j = m; j > dupcol; j--) { arr[i][j] = arr[i][j - 1]; } } for (int i = 0, j = 0; i < n; i++, j++) { if (j = dupcol) arr[i][j + 1] = arr[i][j]; } m++; } int null_column() { int zerocolumns[max_m] = { 0 }; for (int j = 0; j < m; j++) { for (int i = 0; i < n; i++) { if (arr[i][j] % 2 == 0) { zerocolumns[j] = 1; // чётное break; } } } for (int j = 0; j < m; j++) { if (zerocolumns[j] == 0) { //не чётное for (int i = 0; i < n; i++) { arr[i][j] = 0; } } } return 0; } void main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int item; do { printf("\n"); print(); printf("==============================\n"); printf("выберите нужную вам операцию:\n"); printf("1: заполнить значениями i * 10 + j\n"); printf("2: заполнить 0\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("-1: выйти из программы\n"); printf("выбранная операция >>>>>> "); scanf_s("%d", &item); switch (item) { case 1: fillix10(); break; case 2: fillzero(); break; case 3: random(); break; case 4: odd_numbers(); break; case 5: multiples_10(); break; case 6: enterinf_array(); break; case 7: save(); break; case 8: load(); break; case 9: { int num; printf("номер строки, которую нужно удалить: "); scanf_s("%d", &num); deletrow(num); break; } case 10: { int num; printf("введите номер столбца, который нужно продублировать = "); scanf_s("%d", &num); duplicatecolumn(num); break; } case 11: null_column(); break; } } while (item != -1); }