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

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

17.03.2011, 22:56. Просмотров 2946. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2011, 22:56
Ответы с готовыми решениями:

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

Найти максимальный и минимальный элементы массива и поменять их местами
Найти минимальный и максимальный элементы массива D(80) и поменять их местами. Создала форму....

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

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

5
74 / 74 / 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
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
17.03.2011, 23:52  [ТС] 3
это в c++? мне просто в c надо..) да я не понял, что изменилось-то?)
0
74 / 74 / 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
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
18.03.2011, 07:40  [ТС] 5
жму руку)
0
Модератор
Эксперт JavaЭксперт CЭксперт С++
10809 / 6563 / 1611
Регистрация: 25.07.2009
Сообщений: 12,340
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2011, 10:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти минимальный и максимальный элементы массива D и поменять их местами
Помогите Пожалуйста!Такая задача: Найти минимальный и максимальный элементы массива D и поменять...

Найти максимальный и минимальный элементы массива и поменять их местами
Составить программу в системе Mathcad для заданного вектора:...

Найти максимальный и минимальный элементы массива и поменять их местами
Из элементов массива m сформировать массив n того же размера по правилу: если номер и элемента...

Найти максимальный и минимальный элементы массива и поменять их местами
Найти максимальный и минимальный элементы массива D (D) и поменять их местами Di - целые числа


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

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

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