Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/106: Рейтинг темы: голосов - 106, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
1

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

10.04.2011, 12:44. Показов 21171. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо найти сумму элементов массива расположенных после минимального элемента.
Размер массива вводиться с клавиатуры. предусмотреть ввод данных как с клавиатуры так и с помощью функции rand(). числа могуть быть любые натуральные. спасибо всем, кто отликнется
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2011, 12:44
Ответы с готовыми решениями:

Сумма элементов одномерного массива
Доброго времени суток! :) Будьте добры, помогите, пожалуйста. Ввести массив А(N). Найти сумму...

Сумма элементов произвольного одномерного массива
Помогите составить программу, которая находит сумму элементов произвольного одномерного массива

Рекурсия: сумма элементов одномерного массива
Написать рекурсивную функцию (+ саму программу), которая подсчитывает сумму элементов одномерного...

Сумма элементов между первым и последним нулевыми элементами одномерного массива
Пожалуйста помогите. В одномерном массиве определить к-во элементов между первым и последним...

15
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 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");        
}
1
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 13:11  [ТС] 3
к сожалению, а не понимаю языка С++. знаний не много. только С.
0
101 / 101 / 15
Регистрация: 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;
}
1
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 ) ); вот в этой строке вообще не понятно что происходит.
0
167 / 166 / 46
Регистрация: 10.10.2010
Сообщений: 725
10.04.2011, 18:29 6
Здесь выделяется динамически память под массив int размером arrSize,т.е сколько вы введи элементов таким размер и будет,если не выделять память динамически,то объявлять массив нужно так,mass[100],те не известно сколько будет у вас элементов и вы выделяете большое количество,чтобы все влезло,но так делать не очень целесообразно

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

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

Добавлено через 1 час 19 минут
как это понять?
arr[ i ] = rand() % 30;
0
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
10.04.2011, 19:55 9
Den_i3_Kh, элементу аrr[i] присваиваем рандомное значение в диапазоне 0..30
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
10.04.2011, 19:58 10
Цитата Сообщение от Dekio Посмотреть сообщение
в диапазоне 0..30
Точнее - [0;29]
0
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
10.04.2011, 20:02 11
asics, опечатался, в диапазоне 0..29
0
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 20:49  [ТС] 12
почему именно от 0 до 29?
0
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
10.04.2011, 20:51 13
Den_i3_Kh, потому что счет идет с 0 до n-1. В данном случае n у нас 30
0
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 21:56  [ТС] 14
ну так я же могу вводить любой диапазоне. например RAND_MAX. тогда в массив будут заполняться уже числа не от 0 до 30, а от 0 до RAND_MAX. так?
0
101 / 101 / 15
Регистрация: 04.02.2010
Сообщений: 162
10.04.2011, 22:20 15
в общем случае формула для определения диапазона случайных чисел имеет вид
C++
1
rand()%(b-a+1)+a;
где
a - начало диапазона
b - конец диапазона
2
0 / 0 / 0
Регистрация: 10.04.2011
Сообщений: 41
10.04.2011, 23:12  [ТС] 16
-а потом +а. зачем это если оно не участвует в определении диапазона
0
10.04.2011, 23:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2011, 23:12
Помогаю со студенческими работами здесь

Сумма одномерного массива
Создать функцию вычисления суммы элементов одномерного массива. Ввод элементов путем генерации случ...

Сумма элементов одномерного и многомерного массивов
Вот короче 2 массива, 1 одномерный 1 многомерный, многомерный вроде бы правильно считает сумму его...

Подсчитать количество элементов одномерного массива, которые превосходят среднее арифметическое всех элементов массива
Подсчитать количество элементов одномерного массива, которые превосходят среднее арифметическое...

количество четных элементов одномерного массива до числа равному а, Определить количество нечетных элементов двумерного массива
1.Найти количество четных элементов одномерного массива до первого встреченного числа равного...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru