Заменить элементы ниже главной диагонали на элементы выше главной диагонали - C (СИ)
Формулировка задачи:
Привет! Можете помочь в Си? Есть начало, но как именно менять может кто-то подсказать?
Дана квадратная матрица действительных чисел размером 6х6. Заменить элементы лежащие ниже главной диагонали соответствующими элементами, лежащими выше главной диагонали, умноженными на максимальный элемент всей матрицы
void form_matr (int *a, int n, int m) { int i,j; for (i=0;i<n;i++) { printf ("\n"); for (j=0;j<m;j++) { *(a+i*m+j)=rand()%100; printf("%4d ",*(a+i*m+j)); } } } void f1 (int *a, int n, int m, int *max) { int i,j; *max=-1000; for(i=0; i<n; i++) { printf("\n"); for(j=0; j<m; j++) { if(*(a+i*m+j)>*max) *max=*(a+i*m+j); } } printf("max= %d ", *max); } int main() { int n=6, m=6, max, a[6][6]; form_matr(&a[0][0], n, m); f1(&a[0][0], n, m, &max); getch(); return 0; }
Решение задачи: «Заменить элементы ниже главной диагонали на элементы выше главной диагонали»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include<time.h> #define N 6 #define M 6 void form_matr(int (*a)[N],int rows); int max_matr(int (*a)[N],int rows); void change_matr(int (*a)[N],int rows,int max); void print_matr(int (*a)[N],int rows); int main(void) { int a[N][M],max; srand(time(NULL)); form_matr(a,M); print_matr(a,M); max=max_matr(a,M); printf("max=%d\n",max); change_matr(a,M,max); print_matr(a,M); return 0; } void form_matr(int (*a)[N],int rows) { int i,j; for(i=0;i<N;i++) for(j=0;j<rows;j++) *(*(a+i)+j)=rand()%100; } int max_matr(int (*a)[N],int rows) { int max=-200,i,j; for(i=0;i<N;i++) for(j=0;j<rows;j++) if(*(*(a+i)+j)>max) max=*(*(a+i)+j); return max; } void change_matr(int (*a)[N],int rows,int max) { int i,j; for(i=0;i<N;i++) for(j=0;j<i;j++) *(*(a+i)+j)=*(*(a+j)+i)*max; } void print_matr(int (*a)[N],int rows) { int i,j; printf("\nMatrix:\n"); for(i=0;i<N;i++) { for(j=0;j<rows;j++) printf("%5d",*(*(a+i)+j)); printf("\n"); } printf("\n"); }
Объяснение кода листинга программы
Код представляет собой программу на языке C, которая работает с матрицей целых чисел. Список действий, выполняемых кодом:
- Создается матрица типа int, размерностью 6x6, и инициализируется случайными числами от 0 до 99.
- Находится максимальное значение в матрице.
- Заменяются элементы ниже главной диагонали на элементы выше главной диагонали, умноженные на максимальное значение.
- Выводится исходная матрица.
- Выводится матрица после замены элементов.
Подробнее о каждой функции:
form_matr
формирует начальную матрицу, заполняя ее случайными числами.max_matr
находит максимальное значение в матрице.change_matr
меняет элементы в соответствии с условиями задачи.print_matr
выводит матрицу на экран. В основной функцииmain
вызываются все эти функции в нужной последовательности.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д