Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/14: Рейтинг темы: голосов - 14, средняя оценка - 5.00
sigdems
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 5
1

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

17.03.2011, 22:56. Просмотров 2516. Ответов 5
Метки нет (Все метки)

Найти максимальный и минимальный элементы массива и поменять их местами в с
Люди, помогите! задача для c вроде простая, но вот не хочет менять как надо, не могу понять, в чём дело. Посмотрите в чём ошибка, если не трудно, заранее спасибо:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{int i,d[8],imin=0,imax=0,k;
clrscr();
for(i=0;i<8;i++)
{printf("BBeguTe -)JIeMeHT MaccuBa:\n");
scanf("%d",&d[i]);}
for (i=0;i<8;i++)
{if (d[imin]<d[i])
imin=i;}
for (i=0;i<8;i++)
{if (d[imax]>d[i])
imax=i;}
for (i=0; i<8;i++)
k=imin;
d[imin]=d[imax];
d[imax]=k;
for(i=0;i<8;i++)
{printf("%d\n",d[i]);}
getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2011, 22:56
Ответы с готовыми решениями:

Найти минимальный и максимальный элементы массива и поменять их местами
Найти минимальный и максимальный элементы массива и поменять их местами.

Поменять местами минимальный и максимальный элементы массива
Дан массив размера N. Поменять местами его минимальный и максимальный элементы.

Поменять местами максимальный и минимальный элементы массива
Ошибка тут скорее всего не одна))реализовывал программу через глобальные...

Поменять местами минимальный и максимальный элементы массива размера 10
Можете подсказать где ошибка просто здесь вообще не меняет местами #include...

Массив: определить максимальный и минимальный элементы массива и поменять их местами.
очень срочно

5
slava_g1
72 / 72 / 32
Регистрация: 06.02.2011
Сообщений: 127
17.03.2011, 23:28 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
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include<iostream>
void main(){
    int i,d[8],imin=0,imax=0,k;
    system("cls");
    for(i=0;i<8;i++){
        printf("BBeguTe -)JIeMeHT MaccuBa: ");
        scanf("%d",&d[i]);
    }
    for(i=0;i<8;i++){
        printf("%d\t",d[i]);
    }
    for (i=0;i<8;i++){
        if (d[imin]<d[i])
            imin=i;
    }
    for (i=0;i<8;i++){
        if (d[imax]>d[i])
            imax=i;
    }
    printf("\n");
    int tmp=d[imin];
    d[imin]=d[imax];
    d[imax]=tmp;
    for(i=0;i<8;i++){
        printf("%d\t",d[i]);
    }
    getch();
}
Вроде бы работает ))Спасибо ниже.
2
sigdems
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 5
17.03.2011, 23:52  [ТС] 3
это в c++? мне просто в c надо..) да я не понял, что изменилось-то?)
0
slava_g1
72 / 72 / 32
Регистрация: 06.02.2011
Сообщений: 127
18.03.2011, 00:08 4
C
1
2
3
k=imin;//подозреваю что ошибка здесь k присваиваешь индекс
d[imin]=d[imax];
d[imax]=k;// d[imax] присваиваешь индекс
Согласен?
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 <conio.h>
#include <math.h>
void main(){
    int i,d[8],imin=0,imax=0;
    for(i=0;i<8;i++){
        printf("BBeguTe -)JIeMeHT MaccuBa: ");
        scanf("%d",&d[i]);
    }
    for(i=0;i<8;i++){
        printf("%d\t",d[i]);
    }
    for (i=0;i<8;i++){
        if (d[imin]<d[i])
            imin=i;
    }
    for (i=0;i<8;i++){
        if (d[imax]>d[i])
            imax=i;
    }
    printf("\n");
    int tmp=d[imin];
    d[imin]=d[imax];
    d[imax]=tmp;
    for(i=0;i<8;i++){
        printf("%d\t",d[i]);
    }
    getch();
}
А где тут с++
1
sigdems
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 5
18.03.2011, 07:40  [ТС] 5
жму руку)
0
easybudda
Модератор
Эксперт CЭксперт С++
10208 / 6107 / 1536
Регистрация: 25.07.2009
Сообщений: 11,607
18.03.2011, 10:56 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от sigdems Посмотреть сообщение
Найти максимальный и минимальный элементы массива и поменять их местами
В неделю раза по три спрашивают...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int * max(int * arr, size_t size){ return size < 2 ? arr : *arr < *(arr + size - 1) ? max(arr + 1, size - 1) : max(arr, size - 1); }
int * min(int * arr, size_t size){ return size < 2 ? arr : *arr > *(arr + size - 1) ? min(arr + 1, size - 1) : min(arr, size - 1); }
void swap(int * a, int * b){ int tmp = *a; *a = *b; *b = tmp; }
void dump(int * arr, size_t size){ while ( size-- ) printf("%d%c", *arr++, ( size ) ? ' ' : '\n'); }
 
#define SIZE 5
 
int main(void){
    int arr[SIZE] = { 1, 2, 3, 4, 5 };
    printf("Before: ");
    dump(arr, SIZE);
    swap(max(arr, SIZE), min(arr, SIZE));
    printf("After: ");
    dump(arr, SIZE);
    return 0;
}
1
18.03.2011, 10:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2011, 10:56

Найти минимальный и максимальный элементы матрицы и поменять их местами
В матрице 5на 5 исп. Подпрограму найти мин макс элементы и поменять их местами...

Найти в массиве максимальный и минимальный элементы по модулю и поменять их местами
Вот решаю задачу по Си++, но так как дома среды разработки такой нет , то решаю...

В массиве целых чисел найти минимальный и максимальный элементы и поменять их местами
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;malloc.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru