Как сделать, чтобы в ответе программа выводила измененный массив? - C (СИ)
Формулировка задачи:
Дан массив из целых чисел А(5 х 5). Заменить максимальный элемент
каждой строки на противоположный.
в ответе он должен вывести измененный массив если поможете исправить ошибку буду благодарен.
#include <stdio.h> #include <stdlib.h> #include <time.h> void main() { srand(time(NULL)); int a[100][100], i, j, n, max, k; scanf_s("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { a[i][j] = -1 + rand() % 10; printf("%3i", a[i][j]); } printf("\n"); } for (i = 1;i <= n;i++) { max = a[i][1]; {for (j = 1;j <= n;j++) if (a[i][j] >= max) max = a[i][j]; k = -max;} printf("max=%3d\n", k); } for (i = 1;i <= n;i++) { for (j = 1;j <= n;j++) { printf("%3i", a[i][j]); } printf("\n"); } }
Решение задачи: «Как сделать, чтобы в ответе программа выводила измененный массив?»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) /* int main(void) !!! - следуем стандартам */ { int a[100][100], i, j, n, max, k=0; int * tmp = NULL; /* указатель на максимальный элемент */ srand(time(NULL)); scanf_s("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { a[i][j] = -1 + rand() % 10; printf("%3i", a[i][j]); } printf("\n"); } for (i = 1;i <= n;i++) { max = a[i][1]; for (j = 1;j <= n;j++) { if (a[i][j] >= max) { max = a[i][j]; tmp = &a[i][j]; /* запомнили, какой элемент является самым большим, установив на него указатель */ k = - max; } } *tmp = k; /* записали k по адресу максимального элемента */ printf("max=%3d | change=%3d\n", max,k); } for (i = 1;i <= n;i++) { for (j = 1;j <= n;j++) { printf("%3i", a[i][j]); } printf("\n"); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д