11 / 11 / 5
Регистрация: 25.11.2011
Сообщений: 147
1

В массиве найти и поменять местами max и min элементы

13.05.2014, 21:37. Показов 2329. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Попросили помочь, а я только на Си пишу пока что. Если несложно помогите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2014, 21:37
Ответы с готовыми решениями:

Найти в массиве max и min элементы, поменять их местами
Дана программа,которая ищет max и min элементы,а после меняет их местами.Дали дополнительное...

Найти в одномерном массиве F(n) max и min элементы и поменять их местами.
Найти в одномерном массиве F(n) max и min элементы и поменять их местами.

Поменять местами min и max элементы в массиве
Поменять местами min и max элемент в массиве. Если можно в виде блок-схемы.

В одномерном массиве поменять местами максимальный (MAX) и минимальный (MIN) элементы
В одномерном массиве поменять местами максимальный (MAX) и минимальный (MIN) элементы. Вывести...

7
Ушел с форума
Автор FAQ
16216 / 7546 / 1048
Регистрация: 11.11.2010
Сообщений: 13,555
14.05.2014, 03:37 2
saserlend,
так напиши для начала программу на Си и выложи ее, а с переводом на ассемблер поможем...
0
11 / 11 / 5
Регистрация: 25.11.2011
Сообщений: 147
14.05.2014, 19:51  [ТС] 3
Вот. Переделывать легче чем с нуля писать? На Си вроде просто, я думал и в ассемблере на том же уровне.
Кликните здесь для просмотра всего текста
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
32
33
34
35
36
37
#include <iostream>
using namespace std;
 
int main()
{
    const int count = 10;
    int array[count];
 
    cout << "Enter array:\n";
    for(int i = 0; i < count; i++) {
        cout << i+1 << ": ";
        cin >> array[i];
    }
 
    int min = 0, max = 0;
    for (int i = 0; i < count; i++) {
        if (array[i] < array[min]) min = i;
        if (array[i] > array[max]) max = i;
    }
    system("cls");
 
    cout << "Source array:\t ";
    for (int i = 0; i < count; i++) {
        cout << array[i] << " ";
    }
    cout << "\n";
 
    int st = array[max];
    array[max] = array[min];
    array[min]  = st;
    
    cout << "Resulting array: ";
    for (int i = 0; i < count; i++) {
        cout << array[i] << " ";
    }
    cout << "\n";
}
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
14.05.2014, 21:05 4
Дык, под досю или под вынь?
Цитата Сообщение от saserlend Посмотреть сообщение
На Си вроде просто
Ну, это такой же Си, как HLA - ассемблер.
0
11 / 11 / 5
Регистрация: 25.11.2011
Сообщений: 147
14.05.2014, 21:58  [ТС] 5
Под Win на 8086.
0
Ушел с форума
Автор FAQ
16216 / 7546 / 1048
Регистрация: 11.11.2010
Сообщений: 13,555
15.05.2014, 04:00 6
Цитата Сообщение от saserlend Посмотреть сообщение
Под Win на 8086.

даже Windows 1.0 и той был нужен как минимум intel 286, начиная с Windows 95 ОС стала 32-разрядной и может работать не менее чем на 386, а лучше 486, а еще лучше Пентиумы. Tак что еще раз подумай -- программа для 8086 то есть для DOS'a или всётаки для Windows?
1
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
15.05.2014, 13:46 7
Дык, как-то так:
Assembler
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.586
    .model flat, stdcall    
    option casemap :none
    include \masm32\include\windows.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\masm32.inc
    include \masm32\include\msvcrt.inc
    include \masm32\macros\macros.asm
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\msvcrt.lib
.data
req db  'Введите количество элементов:',0
tpt db  '%d',0
mtpt    db  'mas[%d]= ',0
dtpt    db  'mas[%d]= %d\n\r',0
@cls    db  'cls',0
mmax    db  'min=%d, max=%d',0
.data?
n   dd  ?
mas dd  ?
max dd  ?
min dd  ?
.code
start:
;system ("chcp 1251");
    invoke  SetConsoleCP, 1251
    invoke  SetConsoleOutputCP, 1251
;system ("cls");
    invoke  crt_system, ADDR @cls
;printf ("Введите количество элементов:");
    invoke  crt_puts, ADDR req
;scanf ("%d",&n);
    invoke  crt_scanf, ADDR tpt, ADDR n
;mas=(int*) malloc(n*sizeof(int));
    mov eax,[n]
    shl eax,2       ; n*sizeof(int)
    invoke  crt_malloc, eax
    mov [mas], eax
;for(i=0;i<n;i++)
;{printf("mas[%d]= ",i);
;scanf("%d",&mas[i]);
;}
    xor edx, edx
    mov ecx, [n]
    mov esi, [mas]
@@: push    ecx         ; ecx, edx загадятся
    push    edx     ;
    invoke  crt_printf, ADDR mtpt, edx 
    invoke  crt_scanf, ADDR tpt, esi
    pop edx
    pop ecx
    add esi,4
    inc edx
    loop    @B
;for(i=0;i<n;i++)
    mov ecx, [n]
    mov esi, [mas]
    mov edx, [esi]  ; 1st element
    mov ebx, edx        ; as min & max
    mov edi, esi    ; startin' index
    push    ebp
    mov ebp, esi
@@: 
    lodsd
; if (mas[n] > max) max = mas[n];
    cmp eax, edx    ; mas[n] > max
    jb  @1
    mov edx, eax    ; yeah, update
    mov edi, esi    ; save index
    sub edi,4
    jmp @3
; if (mas[n] < min) min = mas[n];
@1: cmp eax, ebx    ; mas[n] < min
    ja  @3
    mov ebx, eax    ; yeah, update
    mov ebp, esi
    sub ebp, 4
@3: loop    @B
    mov [edi], ebx
    mov esi, ebp
    mov [esi], edx
    pop ebp
    invoke  crt_printf, ADDR mmax, ebx, edx
    invoke  crt__getch
exit:
    invoke  crt_free,[mas]
    invoke  crt_exit,0
 
    end start
1
11 / 11 / 5
Регистрация: 25.11.2011
Сообщений: 147
15.05.2014, 23:53  [ТС] 8
Цитата Сообщение от Mikl___ Посмотреть сообщение

даже Windows 1.0 и той был нужен как минимум intel 286, начиная с Windows 95 ОС стала 32-разрядной и может работать не менее чем на 386, а лучше 486, а еще лучше Пентиумы. Tак что еще раз подумай -- программа для 8086 то есть для DOS'a или всётаки для Windows?
Ну извиняй) Тут я не силен) Как мне сказали так и передал) Я как с с++ начал так в нем и сижу)
0
15.05.2014, 23:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2014, 23:53
Помогаю со студенческими работами здесь

Найти max и min элементы массива D и поменять их местами
Массив D(80) Найти максимальный и минимальный элементы массива D и поменять их местами. Условия и...

Найти min и max элементы квадратной матрицы и поменять местами строки, в которых находятся эти элементы
Здраствуйте, стыдно просить такую глупость для вас, но сам я не могу реализовать вот такой код:...

Найти max и min элементы первого столбца и поменять местами содержащие их строки

Найти min и max элементы на главной диагонали матрицы и поменять местами соответствующие столбцы
Составить программу поиска минимального и максимального элементов массива расположенных на главной...

Найти в каждой строке матрицы max и min элементы и поменять их местами с первым и последним элементом
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...

Найти max и min элементы в массиве и номер элемента, близкого к среднему арифметическому min и max.
Привет всем! Очень прошу помочь в решении задачи на определение характеристик одномерного массива....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru