Поменять местами наибольший и наименьший элемент главной диагонали массива - 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, чтобы завершить работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д