Форум программистов, компьютерный форум CyberForum.ru

Исправить ошибку в коде. - C++

Восстановить пароль Регистрация
 
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
24.02.2013, 20:05     Исправить ошибку в коде. #1
Реализовать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями

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
#include<iostream>
#include<windows.h>
 using namespace std;
void f(int *a,int n,int &k,int &l)
{
    int max=*(a),min=*(a);
    k=0;
    l=0;
    for (int i=0;i<n;i++)
        if (*(a+i)>max) 
        {
            max=*(a+i);k=i;}cout<< "min "<< min<<endl;
}
}
 
int main() 
{
    SetConsoleOutputCP(1251);
    int *a,i,p=1,k,l,n,min;
cout << "Введите размер массива:"<< endl;
cin>>n;
a=new int [n];
 
cout << "Заполните массив:"<< endl;
for (i=0;i<n;i++)
cin>>a[i];
f(a,n,k,l);
cout << k << " " <<l;
 
 
delete []a;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2013, 20:05     Исправить ошибку в коде.
Посмотрите здесь:

Исправить ошибку в коде C++
Исправить ошибку в коде с++ C++
C++ Исправить ошибку в коде
C++ исправить ошибку в коде
исправить ошибку в коде C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
24.02.2013, 20:21     Исправить ошибку в коде. #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
32
33
34
35
36
37
38
#include<iostream>
#include<windows.h>
 
using namespace std;
 
void GetMinMaxIndex(int *arr, size_t &max_i, size_t &min_i, const size_t &arr_size)
{
    max_i = 0;
    min_i = 0;
    for (size_t i = 0; i!=arr_size; i++)
    {
        if (arr[i]>arr[max_i])
            max_i = i;
        if (arr[i]<arr[min_i])
            min_i = i;
    }
}
 
int main()
{
    SetConsoleOutputCP(1251);
 
    size_t arr_size;
    cout << "Введите размер массива:"<< endl;
    cin>>arr_size;
    int *a = new int [arr_size];
 
    for (size_t i=0; i!=arr_size; i++)
        a[i] = i;
 
    size_t max_index, min_index;
    GetMinMaxIndex(a,max_index,min_index,arr_size);
    
    cout<<"max index: "<<max_index<<endl;
    cout<<"min index: "<<min_index<<endl;
    delete []a;
    return 0;
}
А вообще, нужно использовать стандартные функции max_element и min_element
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
24.02.2013, 20:28  [ТС]     Исправить ошибку в коде. #3
Цитата Сообщение от Olivеr Посмотреть сообщение
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
38
#include<iostream>
#include<windows.h>
 
using namespace std;
 
void GetMinMaxIndex(int *arr, size_t &max_i, size_t &min_i, const size_t &arr_size)
{
    max_i = 0;
    min_i = 0;
    for (size_t i = 0; i!=arr_size; i++)
    {
        if (arr[i]>arr[max_i])
            max_i = i;
        if (arr[i]<arr[min_i])
            min_i = i;
    }
}
 
int main()
{
    SetConsoleOutputCP(1251);
 
    size_t arr_size;
    cout << "Введите размер массива:"<< endl;
    cin>>arr_size;
    int *a = new int [arr_size];
 
    for (size_t i=0; i!=arr_size; i++)
        a[i] = i;
 
    size_t max_index, min_index;
    GetMinMaxIndex(a,max_index,min_index,arr_size);
    
    cout<<"max index: "<<max_index<<endl;
    cout<<"min index: "<<min_index<<endl;
    delete []a;
    return 0;
}
А вообще, нужно использовать стандартные функции max_element и min_element
у меня не работает..
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
24.02.2013, 20:37     Исправить ошибку в коде. #4
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
#include<iostream.h>
#include<math.h>
#include<iomanip.h>
void f(int *a,int n,int &k,int &l)
{
    int max=*(a),min=*(a);
    k=0;
    l=0;
    for (int i=0;i<n;i++)
    {
        if (*(a+i)>max) {max=*(a+i);k=i;}
        if (*(a+i)<min) {min=*(a+i);l=i;}
    }
 
}
 
int main() {
    int *a,i,p=1,k,l,n,min;
cout << "Vvedite kolichestvo"<< endl;
cin>>n;
a=new int [n];
 
cout << "Vvedite elementi"<< endl;
for (i=0;i<n;i++)
cin>>a[i];
cout <<endl;
for (i=0;i<n;i++)
cout<<a[i]<< " ";
cout <<endl;
f(a,n,k,l);
cout << k << " " <<l;
 
 
delete []a;
return 0;
}
Yandex
Объявления
24.02.2013, 20:37     Исправить ошибку в коде.
Ответ Создать тему
Опции темы

Текущее время: 13:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru