Поменять местами наибольший и наименьший элемент главной диагонали массива - C (СИ)
Формулировка задачи:
Дан массив 10х10. Поменять местами наибольший и наименьший элемент главной диагонали массива.
Написал код. Но не работает. Можете указать на ошибки.
int main { int a[10][10]; int i,j; for(i=0;i<10;i++) { for(j=0;j<10;j++) a[i][j]=rand()%100; printf("%d",a[i][j]); }} for(i=0;i<10;i++) { for(j=0;j<10;j++) int max=[0][0],min=[0][0]; if(max=a[i][j]) max=a[i][j]; if(min>a[i][j]) min=a[i][j]; }} { int t=max; max=min; min=t; printf("%d",a[i][j]); } return 0; }
Решение задачи: «Поменять местами наибольший и наименьший элемент главной диагонали массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { int a[10][10]; int i, j; for (i = 0; i < 10; ++i) { for (j = 0; j < 10; ++j) { a[i][j] = rand() % 100; printf("%4d", a[i][j]); } printf("\n"); } int* max = &a[0][0]; int* min = &a[0][0]; for (i = 1; i < 10; ++i) { if (*max < a[i][i]) { max = &a[i][i]; } if (a[i][i] < *min) { min = &a[i][i]; } } int t = *max; *max = *min; *min = t; printf("\n"); for (i = 0; i < 10; ++i) { for (j = 0; j < 10; ++j) { printf("%4d", a[i][j]); } printf("\n"); } return 0; }
Объяснение кода листинга программы
- Объявлен массив a[10][10] для хранения 10x10 элементов.
- Заполняют массив случайными числами от 0 до 99 с помощью функции rand().
- Выводят заполненный массив на экран.
- Инициализируют указатели max и min на первый элемент главной диагонали a[0][0].
- Проходят по всем элементам главной диагонали, начиная со второго элемента, ищут наибольший и наименьший элементы.
- Меняют местами наибольший и наименьший элементы.
- Выводят измененный массив на экран.
- Возвращают 0, чтобы завершить работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д