Как сделать, чтобы в ответе программа выводила измененный массив? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан массив из целых чисел А(5 х 5). Заменить максимальный элемент каждой строки на противоположный.
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. void main()
  5. {
  6. srand(time(NULL));
  7. int a[100][100], i, j, n, max, k;
  8. scanf_s("%d", &n);
  9. for (i = 1; i <= n; i++)
  10. {
  11. for (j = 1; j <= n; j++)
  12. {
  13. a[i][j] = -1 + rand() % 10;
  14. printf("%3i", a[i][j]);
  15. }
  16. printf("\n");
  17. }
  18. for (i = 1;i <= n;i++)
  19. {
  20. max = a[i][1];
  21. {for (j = 1;j <= n;j++)
  22. if (a[i][j] >= max) max = a[i][j];
  23. k = -max;}
  24. printf("max=%3d\n", k);
  25. }
  26. for (i = 1;i <= n;i++)
  27. {
  28. for (j = 1;j <= n;j++)
  29. {
  30. printf("%3i", a[i][j]);
  31. }
  32. printf("\n");
  33. }
  34. }
в ответе он должен вывести измененный массив если поможете исправить ошибку буду благодарен.

Решение задачи: «Как сделать, чтобы в ответе программа выводила измененный массив?»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main(void) /* int main(void) !!! - следуем стандартам */
  5. {
  6.  
  7.     int a[100][100], i, j, n, max, k=0;
  8.     int * tmp = NULL; /* указатель на максимальный элемент */
  9.     srand(time(NULL));
  10.     scanf_s("%d", &n);
  11.     for (i = 1; i <= n; i++)
  12.     {
  13.         for (j = 1; j <= n; j++)
  14.         {
  15.             a[i][j] = -1 + rand() % 10;
  16.             printf("%3i", a[i][j]);
  17.         }
  18.         printf("\n");
  19.     }
  20.     for (i = 1;i <= n;i++)
  21.     {
  22.         max = a[i][1];
  23.         for (j = 1;j <= n;j++)
  24.         {
  25.             if (a[i][j] >= max)
  26.             {
  27.                 max = a[i][j];
  28.                 tmp = &a[i][j]; /* запомнили, какой элемент является самым большим, установив на него указатель */
  29.                 k = - max;
  30.             }
  31.         }
  32.         *tmp = k; /* записали k по адресу максимального элемента */
  33.         printf("max=%3d | change=%3d\n", max,k);
  34.     }
  35.     for (i = 1;i <= n;i++)
  36.     {
  37.         for (j = 1;j <= n;j++)
  38.         {
  39.             printf("%3i", a[i][j]);
  40.         }
  41.         printf("\n");
  42.     }
  43.     return 0;
  44. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы