Как сделать, чтобы в ответе программа выводила измененный массив? - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д