Вопрос пользователя:
Ответ нейросети:
#include <stdio.h>
#include <stdlib.h>
void static_allocation(int matrix[100][100], int rows, int cols) {
printf("Enter the matrix elements:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (scanf("%d", &matrix[i][j]) != 1) {
printf("n/a\n");
return;
}
}
}
printf("The matrix is:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d", matrix[i][j]);
if (j != cols - 1) {
printf(" ");
}
}
printf("\n");
}
}
void dynamic_allocation(int rows, int cols) {
int **matrix = (int **)malloc(rows * sizeof(int *));
if (matrix == NULL) {
printf("n/a\n");
return;
}
for (int i = 0; i < rows; i++) {
matrix[i] = (int *)malloc(cols * sizeof(int));
if (matrix[i] == NULL) {
printf("n/a\n");
return;
}
}
printf("Enter the matrix elements:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (scanf("%d", &matrix[i][j]) != 1) {
printf("n/a\n");
return;
}
}
}
printf("The matrix is:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d", matrix[i][j]);
if (j != cols - 1) {
printf(" ");
}
}
printf("\n");
}
for (int i = 0; i < rows; i++) {
free(matrix[i]);
}
free(matrix);
}
int main() {
int choice, rows, cols;
printf("Choose memory allocation type:\n");
printf("1. Static allocation\n");
printf("2. Dynamic allocation (method 1)\n");
printf("3. Dynamic allocation (method 2)\n");
printf("4. Dynamic allocation (method 3)\n");
scanf("%d", &choice);
if (choice < 1 || choice > 4) {
printf("n/a\n");
return 0;
}
printf("Enter the number of rows and columns in the matrix:\n");
if (scanf("%d %d", &rows, &cols) != 2) {
printf("n/a\n");
return 0;
}
switch (choice) {
case 1:
if (rows <= 100 && cols <= 100) {
int matrix[100][100];
static_allocation(matrix, rows, cols);
} else {
printf("n/a\n");
}
break;
case 2:
dynamic_allocation(rows, cols);
break;
case 3:
dynamic_allocation(rows, cols);
break;
case 4:
dynamic_allocation(rows, cols);
break;
default:
printf("n/a\n");
break;
}
return 0;
}
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.