Задание: Изменить программу так, чтобы программный код, выполняющий действия пунктов меню выполнялся в отдельных функциях (минимум по одной на каждый пункт меню).
а) допускается использование только двух глобальных переменных – указателя на массив и его размерности (в случае работы с прямоугольным массивом – допускается использование двух глобальных переменных для хранения размерности – ширины и высоты).
#include
#include
#include
#include
#include
int main() {
setlocale(LC_ALL, "Rus");
int choice;
do {
int rows, cols; // Объявление переменных
printf("Введите количество строк:\n");
scanf("%d", &rows);
printf("Введите количество столбцов: \n");
scanf("%d", & cols);
if (rows <= 0 || cols <= 0) {
printf("Значения строк и столбцов должны быть положительными и больше нуля\n");
exit(0);
}
int a[rows][cols]; // Объявление матрицы
int trans[cols][rows]; // Объявление матрицы транспонирования
printf("Заполните матрицу:\n");
int value_count = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
scanf("%d", &a[i][j]);
value_count++;
}
}
printf("\nИсходная матрица:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
// Транспонирование матрицы
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
trans[j][i] = a[i][j];
}
}
// Печать матрицы транспонирования
printf("\nПреобразованная матрица:\n");
int i, j;
for (i = 0; i < cols; i++) {
for (j = 0; j < rows; j++) {
printf("%d ", trans[i][j]);
}
printf("\n");
}
printf("\nХотите повторить транспонирование? 1 - нет. 2 - да\n");
scanf("%d", & choice);
} while (choice != 1);
return 0;
}
| Гарантия на работу | 1 год |
| Средний балл | 4.53 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |