Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 3 / 0
Регистрация: 04.11.2012
Сообщений: 45
1

Найти максимальное и минимальное значения массива и поменять их местами

04.11.2012, 17:54. Показов 2067. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа программисты,неофиту очень нужна ваша помощь.
Дан одномерный масив D(80)
Найти: максимальное и минимальное значения,и поменять их местами.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2012, 17:54
Ответы с готовыми решениями:

Поменять местами минимальное и максимальное значения массива
Задача такая: 1. Создаёт динамический (либо статический) массив 2. Заполняет его рандомными...

Создать список из случайных целых чисел и поменять местами элементы, содержащие максимальное и минимальное значения
Создать список из случайных целых чисел и поменять местами элементы, содержащие максимальное и...

Найти в тексте минимальное и максимальное слово в тексте и поменять местами
Найти в тексте минимальное и максимальное слово в тексте и поменять местами ( пожалуйста пример...

Функция: поменять местами минимальное и максимальное значение в массиве
Составить программу , в результате работы которой минимальное и максимальное значение массивов С...

9
9 / 9 / 4
Регистрация: 16.10.2012
Сообщений: 61
04.11.2012, 18:06 2
не совсем понял что он должен выводить после того как мы поменяли местами, вот что получилось
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int main()
{
const int N=80;
int a[N], i=0, temp, max=-1, min=101;
srand(time(NULL));
for (i=1; i<N; i++)
    a[i]=rand()%100 +1;
    for (i=1; i<N; i++)
        printf("%d\n",a[i]);
    for (i=1; i<N; i++)
        if (a[i]>max)
        max= a[i];
        else if (a[i]<min)
        min=a[i];
        printf("max= %d\t min= %d\n", max, min);
        temp=max;
        max=min;
        min=temp;
        printf("max= %d\t min= %d", max, min);
return 0;
}
1
3 / 3 / 0
Регистрация: 04.11.2012
Сообщений: 45
04.11.2012, 18:09  [ТС] 3
Спасибо,буду разбираться
0
9 / 9 / 4
Регистрация: 16.10.2012
Сообщений: 61
04.11.2012, 18:11 4
если что то исправить нужно, скажи, но просто судя по тому что ты попросил этого хватает
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
04.11.2012, 21:19 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Небольшой разбор. См. комментарии:

Цитата Сообщение от Dread1 Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
const int N=80;
int a[N], i=0, temp, max=-1, min=101;
srand(time(NULL));
for (i=1; i<N; i++)// индексация начинается с 0, а не с 1 (у Вас введется 79, а не 80 значений)
 a[i]=rand()%100 +1;
 for (i=1; i<N; i++)
 printf("%d\n",a[i]);
 for (i=1; i<N; i++)
 if (a[i]>max)// допустим самый первый элемент a[1] (после исправления замечания по поводу индексации это будет элемент a[0]) равен 1 и он минимальный в этом массиве
 max= a[i];// в этом случае мы попадаем на эту строку
 else if (a[i]<min)
 min=a[i];// а вот сюда не попадаем, хотя должны
 printf("max= %d\t min= %d\n", max, min);
 temp=max;// в этой строке и двух ниже не меняются минимальное и максимальное значение массива, а меняются значения в переменных max и min. Для обмена минимального и максимального значений массива, нужно было запомнить индексы этих элементов.
 max=min;
 min=temp;
 printf("max= %d\t min= %d", max, min);
return 0;
}
0
9 / 9 / 4
Регистрация: 16.10.2012
Сообщений: 61
04.11.2012, 21:34 6
Да, спешил... В циклах надо начинать с 0
C
1
 i=0
а не
C
1
 for (i=1
0
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 10
05.11.2012, 11:09 7
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Небольшой разбор. См. комментарии:

чтобы выбрать максимальное и минимальное разве не проще будет вот так написать:
C
1
2
3
4
5
6
7
8
  min=a[0];
  max=a[0];
  for (i=1; i<N;i++)
    {  if (a[i]>max)
             max=a[i];
       if (a[i]<min)
          min=a[i];
    }
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
05.11.2012, 14:58 8
Цитата Сообщение от Джентльмен Посмотреть сообщение
чтобы выбрать максимальное и минимальное разве не проще будет вот так написать:
Чтобы узнать максимальное и минимальное значение в массиве, можно и так. А вот если задача стоит не просто узнать эти значения, но и поменять элементы в массиве с этими значениями, то нужно запоминать индексы этих элементов.
0
3 / 3 / 0
Регистрация: 04.11.2012
Сообщений: 45
07.11.2012, 18:30  [ТС] 9
проблема в том что нужно менять все елементы,попарно
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
07.11.2012, 23:25 10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
const int N=80;
int a[N], i=0, temp, i_max=0, i_min=0;
srand(time(NULL));
for (i=0; i<N; i++)
{
    a[i]=rand()%100 +1;
    printf("%d ",a[i]);
}
 for (i=1; i<N; i++)
 {
     if (a[i]>a[i_max])
         i_max=i;
     if (a[i]<a[i_min])
         i_min=i;
 }
 temp=a[i_max]; a[i_max]=a[i_min]; a[i_min]=temp;
 printf("\n\n");
for (i=0; i<N; i++)
{
    printf("%d ",a[i]);
}
 
return 0;
}
1
07.11.2012, 23:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2012, 23:25
Помогаю со студенческими работами здесь

Найти максимальное число и поменять его местами с четверым от конца элементом массива
Помогите пожалуйста Найти максимальное число и поменять его местами с четверым от конца...

Поменять местами столбцы матрицы, содержащие максимальное и минимальное количество четных элементов
Дана целочисленная матрица размера NxM. Поменять местами столбцы матрицы, содержащие ...

В массиве поменять местами максимальное среди отрицательных элементов и минимальное среди положительных
Две задачи. 1. Массив из 10 элементов. Надо поменять местами максимальное среди отрицательных и...

Поменять значения массива местами
Вообщем задача найти максимальный и минимальный элемент массива и поменять их местами. Найти я их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru