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

Сумма элементов одномерного массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.96
Den_i3_Kh
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 12:44     Сумма элементов одномерного массива #1
Необходимо найти сумму элементов массива расположенных после минимального элемента.
Размер массива вводиться с клавиатуры. предусмотреть ввод данных как с клавиатуры так и с помощью функции rand(). числа могуть быть любые натуральные. спасибо всем, кто отликнется
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2011, 12:44     Сумма элементов одномерного массива
Посмотрите здесь:

Смещение элементов одномерного массива C++
C++ Сумма элементов произвольного одномерного массива
Для одномерного массива из 20 элементов найти сумму четных элементов, которые принадлежат промежутку от А до В C++
Сортировка элементов одномерного массива C++
C++ Найти количество элементов одномерного массива и сумму целых элементов, расположенных после последнего отнимае
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
10.04.2011, 13:07     Сумма элементов одномерного массива #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
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int n, *p, sum=0;
    cout<<"Ââåäèòå Г°Г*çìåð Г¬Г*Г±Г±ГЁГўГ*\n";
    cin>>n;
    p=new int[n];
    bool label=false;
    cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*\n";
    for(int i=0; i<n; i++)
    {
            cin>>p[i];
            if(label)
            sum+=p[i];
            if(p[i]<0)
            label=true;
    }
    cout<<"ÑóììГ* ýëåìåГ*òîâ "<<sum<<endl; 
    delete [] p;
    system("pause");        
}
Den_i3_Kh
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 13:11  [ТС]     Сумма элементов одномерного массива #3
к сожалению, а не понимаю языка С++. знаний не много. только С.
vitaska
 Аватар для vitaska
83 / 83 / 2
Регистрация: 04.02.2010
Сообщений: 162
10.04.2011, 14:50     Сумма элементов одномерного массива #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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#include <conio.h>
 
int main(void)
{
    setlocale( LC_ALL,"Russian" );
    srand( (unsigned ) time ( NULL ) );
    int * arr;
    int i, arrSize, indMin = 0, choice, min, sum = 0;
 
    printf("\n Введите размер массива: ");
    scanf("%d", &arrSize);
 
    arr = ( int * ) malloc( arrSize * sizeof( int ) );
 
    printf("\n Вариант ввода значений\n 1 - вручную, 2 - автоматически: ");
    scanf("%d", &choice);
 
    if( choice == 1 ){
        for ( i = 0; i < arrSize; i++ ) {
            printf( "\n array[ %d ] = ", i );
            scanf( "%d", &arr[ i ] );
        }
    }
    else {
        for ( i = 0; i < arrSize; i++ ) {
            arr[ i ] = rand() % 30;
        }
    }
 
    min = arr[ 0 ];
    printf("\nИсходный массив:\n");
    for ( i = 0; i < arrSize; i++ ) {
        printf ( "%d ", arr[ i ] );
         if( arr[ i ] < min ){
            indMin = i;
            min = arr[ i ];
        }
    }
 
    if( indMin == ( arrSize - 1 ) )
        printf( "\n\nМинимальный элемент последний в массиве! Сумма = 0\n" );
    else {
        printf( "\n\nМинимальный элемент в массиве arr[ %d ] = %d\n", indMin, sum );
        for ( i = indMin + 1; i < arrSize; i++ ) {
            sum += arr[ i ];
        }
        printf( "\n\nСумма элементов после минимального = %d\n", sum );
    }
 
    getch();
 
    return 0;
}
Den_i3_Kh
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 18:25  [ТС]     Сумма элементов одномерного массива #5
Огромное спасибо vitaska. все работает идеально. благодарность не имеет границ

Добавлено через 9 минут
ну или почти идеально
Код
 Введите размер массива: 5

 Вариант ввода значений
 1 - вручную, 2 - автоматически: 2

Исходный массив:
6 27 24 10 10

Минимальный элемент в массиве arr[ 0 ] =0


Сумма элементов после минимального = 71
Добавлено через 9 минут
printf( "\n\nМинимальный элемент в массиве arr[ %d ] = %d\n", indMin, sum ); здесь в строке sum, заменил на min и все вышло.
Код
 Введите размер массива: 5

 Вариант ввода значений
 1 - вручную, 2 - автоматически: 2

Исходный массив:
13 7 17 10 25

Минимальный элемент в массиве arr[ 1 ] = 7


Сумма элементов после минимального = 52
спасибо еще раз. вот бы еще со всем этим разобраться что и как. с указателями у меня не очень

Добавлено через 28 минут
вроде в общем разобрался, но
arr = ( int * ) malloc( arrSize * sizeof( int ) ); вот в этой строке вообще не понятно что происходит.
Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
10.04.2011, 18:29     Сумма элементов одномерного массива #6
Здесь выделяется динамически память под массив int размером arrSize,т.е сколько вы введи элементов таким размер и будет,если не выделять память динамически,то объявлять массив нужно так,mass[100],те не известно сколько будет у вас элементов и вы выделяете большое количество,чтобы все влезло,но так делать не очень целесообразно

Почитайте про динамическое выделение памяти и все поймете
sandora
12 / 12 / 0
Регистрация: 10.02.2011
Сообщений: 42
10.04.2011, 18:32     Сумма элементов одномерного массива #7
Цитата Сообщение от Den_i3_Kh Посмотреть сообщение
rr = ( int * ) malloc( arrSize * sizeof( int ) ); вот в этой строке вообще не понятно что происходит.
динамическое выделение памяти

Добавлено через 59 секунд
блин, запостили уже))
Den_i3_Kh
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 19:54  [ТС]     Сумма элементов одномерного массива #8
ясно. спс

Добавлено через 1 час 19 минут
как это понять?
arr[ i ] = rand() % 30;
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
10.04.2011, 19:55     Сумма элементов одномерного массива #9
Den_i3_Kh, элементу аrr[i] присваиваем рандомное значение в диапазоне 0..30
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.04.2011, 19:58     Сумма элементов одномерного массива #10
Цитата Сообщение от Dekio Посмотреть сообщение
в диапазоне 0..30
Точнее - [0;29]
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
10.04.2011, 20:02     Сумма элементов одномерного массива #11
asics, опечатался, в диапазоне 0..29
Den_i3_Kh
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 20:49  [ТС]     Сумма элементов одномерного массива #12
почему именно от 0 до 29?
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
10.04.2011, 20:51     Сумма элементов одномерного массива #13
Den_i3_Kh, потому что счет идет с 0 до n-1. В данном случае n у нас 30
Den_i3_Kh
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 21:56  [ТС]     Сумма элементов одномерного массива #14
ну так я же могу вводить любой диапазоне. например RAND_MAX. тогда в массив будут заполняться уже числа не от 0 до 30, а от 0 до RAND_MAX. так?
vitaska
 Аватар для vitaska
83 / 83 / 2
Регистрация: 04.02.2010
Сообщений: 162
10.04.2011, 22:20     Сумма элементов одномерного массива #15
в общем случае формула для определения диапазона случайных чисел имеет вид
C++
1
rand()%(b-a+1)+a;
где
a - начало диапазона
b - конец диапазона
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2011, 23:12     Сумма элементов одномерного массива
Еще ссылки по теме:

Сумма элементов одномерного и многомерного массивов C++
C++ Суммирование элементов одномерного массива
C++ Сумма элементов одномерного массива

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

Или воспользуйтесь поиском по форуму:
Den_i3_Kh
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 23:12  [ТС]     Сумма элементов одномерного массива #16
-а потом +а. зачем это если оно не участвует в определении диапазона
Yandex
Объявления
10.04.2011, 23:12     Сумма элементов одномерного массива
Ответ Создать тему
Опции темы

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