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

Вычислить номер минимального элемента массива - C++

Восстановить пароль Регистрация
 
zoombie
0 / 0 / 0
Регистрация: 10.06.2013
Сообщений: 7
11.06.2013, 11:25     Вычислить номер минимального элемента массива #1
вычислить:
1) номер минимального элемента массива;
2) сумму элементов массива, расположенных между первым и вторым отрицательными
элементами.
Преобразовать массив таким образом, чтобы сначала располагались все элементы,
модуль которых не превышает 10, а потом — все остальные.
размерность массива 10
диапозон -100 до 100

помогите решить очень нужно
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 11:25     Вычислить номер минимального элемента массива
Посмотрите здесь:

Вычислить номер минимального по модулю элемента массива C++
C++ Вычислить номер минимального элемента массива
Найти номер минимального элемента массива C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить номер минимального по модулю элемента и сумму модулей элеменов массива. C++
В массиве вычислить: номер минимального элемента массива, сумму элементов между первым и вторым отрицательным элементами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
11.06.2013, 11:40     Вычислить номер минимального элемента массива #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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
int min=0,f=0,sum=0,n,z=1;
cout<<"size: ";
cin>>n;
int a[n];
cout<<"write array:"<<endl;
for(int i=0; i<n; i++){cin>>a[i];}
for(int i=0; i<n; i++){
        if(a[i]<0){f=1;}
        if(a[i]<a[min]){min=i;}
        if(f&&z){sum+=a[i+1];
                           if(a[i+1]<0){z=0;
                                      sum-=a[i+1];}
                           }
        }
cout<<"Sum: "<<sum<<endl<<"min: "<<min+1<<endl;                   
                           
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 28 секунд
стоп, это пока только первые два вопроса, сейчас доделаю код
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
11.06.2013, 11:43     Вычислить номер минимального элемента массива #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
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <numeric>
#include <iterator>
#include <functional>
#include <iostream>
 
template <typename T>
class module_less_or_equal_then_value : public std::unary_function<T, bool>
{
    T _value;
public:
    module_less_or_equal_then_value(const T& value) : _value(value) { }
    bool operator () (const T& val)
    {
        return (val < 0 ? -val : val) < _value;
    }
};
 
int main()
{
    std::srand(std::time(0));
    int array[10];
    for (int i = 0; i < 10; i++)
        std::cout << (array[i] = std::rand() % 201 - 100) << ' ';
    std::cout << '\n';
    std::cout << std::distance(std::begin(array), 
        std::min_element(
            std::begin(array), 
            std::end(array))) << '\n';
    int *first_nagative = std::find_if(std::begin(array), std::end(array), std::bind2nd(std::less<int>(), 0));
    if (first_nagative != std::end(array))
    {
        int* last_negative = std::find_if(first_nagative + 1, std::end(array), std::bind2nd(std::less<int>(), 0));
        if (last_negative != std::end(array))
            std::cout << std::accumulate(first_nagative + 1, last_negative, 0) << '\n';
    }
    std::stable_partition(std::begin(array), std::end(array), module_less_or_equal_then_value<int>(10));
    std::copy(std::begin(array), std::end(array), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
Sid1057
5 / 5 / 2
Регистрация: 22.02.2013
Сообщений: 174
11.06.2013, 12:18     Вычислить номер минимального элемента массива #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
37
38
39
40
41
42
43
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
int min=0,f=0,sum=0,z=1,buf,j;
const int n=10;
int a[n];
cout<<"write array:"<<endl;
for(int i=0; i<n; i++){cin>>a[i];}
for(int i=0; i<n; i++){
        if(a[i]<0){f=1;}
        if(a[i]<a[min]){min=i;}
        if(f&&z){sum+=a[i+1];
                           if(a[i+1]<0){z=0;
                                      sum-=a[i+1];}
                           }
        }
cout<<"Sum: "<<sum<<endl<<"min: "<<min+1<<endl;     
for(int i=0;i<n;i++){
        if(a[i]<0){a[i]*=-1;}
        }              
for(int i=0; i<n; i++){
        if(a[i]>=10){
                    j=i;
                    while(j<n){
                                 if(a[j]<10){buf=a[i];
                                             a[i]=a[j];
                                             a[j]=buf;
                                             break;}
                                             j++;
                                 }
                    }
        }
        cout<<"New array :"<<endl;
       for(int j=0; j<n; j++){cout<<a[j]<<endl;}         
                           
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Добавлено через 14 минут
Пaтрик, до того как увидел ваш код, я думал что знаю c++
Yandex
Объявления
11.06.2013, 12:18     Вычислить номер минимального элемента массива
Ответ Создать тему
Опции темы

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