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

Yайти максимальное и минимальное число и его индекс одномерного массива с использованием указателей - C++

Восстановить пароль Регистрация
 
L-e-g-e-n-d-a
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 29
21.11.2013, 09:47     Yайти максимальное и минимальное число и его индекс одномерного массива с использованием указателей #1
Дано одномерный массив найти максимальное и минимальное число и его индекс с использованием указателей.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 09:47     Yайти максимальное и минимальное число и его индекс одномерного массива с использованием указателей
Посмотрите здесь:

C++ В массиве поменять местами его максимальное и минимальное значения
C++ максимальное и минимальное число
составить программу, которая находит максимальное и минимальное значение среди элементов одномерного массива Y, которая состоит из N целых чисел C++
C++ Среди чисел массива, встречающихся минимальное число раз, найти максимальное
максимальное и минимальное число отдельно среди всех положительных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
21.11.2013, 09:56     Yайти максимальное и минимальное число и его индекс одномерного массива с использованием указателей #2
L-e-g-e-n-d-a,
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 <iostream>
 using namespace std;
int main(){
    int n,max,min,i_max,i_min;
    cin >> n;
    int *mas = new int[n];
    for (int i = 0; i<n; i++) {
        cin >> *(mas+i);
    }
    max = *mas;
    min = *mas;
    i_max = 0;
    i_min = 0;
    for (int i = 0; i < n; i++) {
        if (*(mas+i) > max) {
            max = *(mas+i);
            i_max = i;
        }
        if (*(mas+i) < min) {
            min = *(mas+i);
            i_min = i;
        }
    }
    cout<<"MAX - INDEX : "<<max<<" - "<<i_max<<endl;
    cout<<"MIN - INDEX : "<<min<<" - "<<i_min<<endl;
    delete[] mas;
    system("pause");
return 0;
}
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
21.11.2013, 09:59     Yайти максимальное и минимальное число и его индекс одномерного массива с использованием указателей #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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <cstdlib>
 
int min(int * arr, const size_t SIZE, int & minIdx )
{
    int _min = arr[0];
    for(int i = 0; i < SIZE; ++i)
       if(_min > arr[i])
       {
          _min = arr[i];
          minIdx = i;
       }
    
    return _min;
}
 
int max(int * arr, const size_t SIZE, int & maxIdx )
{
    int _max = arr[0];
    for(int i = 0; i < SIZE; ++i)
       if(_max < arr[i])
       {
          _max = arr[i];
          maxIdx = i;
       }
    
    return _max;
}
 
int main(int argc, char *argv[])
{
    srand(time(0));
    const size_t SIZE = 10;
    int arr[SIZE];
 
    for(int i = 0; i < SIZE; ++i)
       arr[i] = rand() % 10;
       
    int minIndex = -1;
    int maxIndex = -1;
    int minElement = min(arr, SIZE, minIndex);
    int maxElement = max(arr, SIZE, maxIndex);
    
    for(int i = 0; i < SIZE; ++i)
       std::cout << arr[i] << " ";
    std::cout << std::endl;
    
    std::cout << "minElement = " << minElement << " minIndex = " << minIndex << std::endl;
    std::cout << "maxElement = " << maxElement << " maxIndex = " << maxIndex << std::endl;
       
    system("PAUSE");
    return 0;
}
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
21.11.2013, 10:06     Yайти максимальное и минимальное число и его индекс одномерного массива с использованием указателей #4
Цитата Сообщение от L-e-g-e-n-d-a Посмотреть сообщение
Дано одномерный массив найти максимальное и минимальное число и его индекс с использованием указателей.
и что в этой задаче такого, чтоб лезть с ней на форум и полениться поискать то же самое?

работая с массивом ты в любом случае используешь указатели, a[i] - То же самое, что *(a+i)

можно конечно и так написать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
int main () {
 const int size=100;
 double a[size];
 double min,max;
 int n,i,imin,imax;
 cout << "Введите размерность массива от 2 до " << size << ":";
 cin >> n;
 cout << "Введите элементы массива размерностью " << n << ":";
 for (i=0; i<n; i++) cin >> a[i];
 double *ptr=&a[0];
 min=max=*ptr; imin=imax=0;
 for (i=0; i<n; i++,ptr++) {
  if (*ptr<min) { min=*ptr; imin=i; }
  if (*ptr>max) { max=*ptr; imax=i; }
 }
 cout << "индекс min=" << imin << ", значение=" << min << endl;
 cout << "индекс max=" << imax << ", значение=" << max;
 cin.sync(); cin.get();
 return 0;
}
Введите размерность массива от 2 до 100:3
Введите элементы массива размерностью 3:2 1 4
индекс min=1, значение=1
индекс max=2, значение=4
но только запутывать код

или в этом и цель была?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main () {
 const int size=100;
 double a[size];
 double min,max;
 int n,i,imin,imax;
 cout << "Введите размерность массива от 2 до " << size << ":";
 cin >> n;
 cout << "Введите элементы массива размерностью " << n << ":";
 for (i=0; i<n; i++) cin >> a[i];
 min=max=a[0]; imin=imax=0;
 for (i=0; i<n; i++) {
  if (a[i]<min) { min=a[i]; imin=i; }
  if (a[i]>max) { max=a[i]; imax=i; }
 }
 cout << "индекс min=" << imin << ", значение=" << min << endl;
 cout << "индекс max=" << imax << ", значение=" << max;
 cin.sync(); cin.get();
 return 0;
}
Yandex
Объявления
21.11.2013, 10:06     Yайти максимальное и минимальное число и его индекс одномерного массива с использованием указателей
Ответ Создать тему
Опции темы

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