Информатика, вопрос задал bertain , 1 год назад

100б + лучший ответ! Написать программу на С:

Приложения:

bertain: Если можно, то с краткими комментариями к каким-то блокам. Хочу разобраться, в чём ошиблась
bertain: Спасибо заранее!
AnonimusPro: Элементы главной диагонали входят в сумму?
bertain: Нет, не входят

Ответы на вопрос

Ответил AnonimusPro
1

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

int i,j,n,sum,a[30][30];

printf("n=");

srand(time(NULL));

scanf("%d",&n);

printf("Matrix:\n");

sum = 0;

for (i = 1; i <= n; i++)

{

  for (j = 1; j<=n; j++)

  {

           a[i][j]=1+rand()%9;

    printf("%d  ",a[i][j]);

  }

  printf("\n");

}

printf("\n");

for (i=2;i<=n-1;i++)

{

  for(j=1;j<=2*i-1;j++)

    if(i!=j)

      sum+=a[i*2-j][j];

  a[i][i]=sum;

  sum=0;

}

printf("Output matrix:\n");

for (i = 1; i <= n; i++)

{

  for (j = 1; j <= n; j++)

           printf("%d  ", a[i][j]);

  printf("\n");

}

return 0;

}


bertain: Большое спасибо! Можете, пожалуйста объяснить второй цикл: начиная с for (i=2, i<=n-1; i++) и до a[i][i]=sum, почему именно такие параметры?
AnonimusPro: Вложенный цикл суммирует элементы перпендикуляной диагонали, начиная с нижнего: 1 проход: a[3][1]+a[2][2]+a[1][3](условие i!=j исключает a[2][2] - элемент главной диагонали). Затем сдвигается сразу на два вниз: a[5][1] + a[4][2] + a[3][3] a[2][4] + a[1][5]. Получается такая "симметричная" последовательность(5-1,4-2,3-3,2-4,1-5). Остается только выявить закономерность изменения i и j, чтобы такая последовательность получилась.
bertain: Благодарю!
bertain: Очень нужна помощь с программой на С: https://znanija.com/task/33506926 ; 100 баллов.
bertain: Добрый день! Если есть возможность, помогите, пожалуйста, с программой: https://znanija.com/task/33569810 . Очень-очень нужна помощь... Буду безгранично благодарна) 100 баллов + лучший ответ!
Новые вопросы