Как сделать, чтобы в ответе программа выводила измененный массив? - 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;
}

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


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

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

10   голосов , оценка 3.5 из 5
Похожие ответы