Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Devil7
0 / 0 / 2
Регистрация: 05.10.2011
Сообщений: 97
1

Найти сумму элементов массива А (45), находящихся между максимальным и минимальным значениями.

11.11.2011, 14:47. Просмотров 2672. Ответов 7
Метки нет (Все метки)

Найти сумму элементов массива А (45), находящихся между максимальным и минимальным значениями. Элементы массива задать рандомно.

Добавлено через 1 час 17 минут
Хочу получить маскимальное значение элемента массива на экран. Но компилятор выдает ошибку i: необъявленный идентификатор. С чем это связано?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main ()
{
    int m [6] = {35,44,52,26,74,33};
    int n;
    n=m[0];
    for (int i=0; i<5;i++);
    {
        if (n<m[i])
            n==m[i];
    }
    printf("n=%d\n",n);
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 14:47
Ответы с готовыми решениями:

Найти сумму элементов массива, находящихся между максимальным и минимальным значениями
Найти сумму элементов массива А (45), находящихся между максимальным и...

Найти произведение элементов массива, расположенных между максимальным и минимальным значениями
Здравствуйте. Не могли бы мне помочь, нужно написать вот такую вот нехитрую...

Указатели: найти количество элементов массива между максимальным и минимальным значениями
Дан массив вещественных чисел, состоящий из N элементов (N=20). Найти...

Дан массив из n элементов. Посчитать, сумму положительных чисел, находящихся между минимальным и максимальным элементом.
помогите пожалуйста решить эту задачку((( Дан массив из n элементов....

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

7
Nursik77
273 / 233 / 30
Регистрация: 05.04.2011
Сообщений: 645
11.11.2011, 14:51 2
Цитата Сообщение от Devil7 Посмотреть сообщение
C
1
for (int i=0; i<5;i++);
После цикла точку с запятой ставить не надо!
1
Devil7
0 / 0 / 2
Регистрация: 05.10.2011
Сообщений: 97
11.11.2011, 15:01  [ТС] 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main ()
{
        int m [6] = {35,44,52,26,74,33};
        int n;
        n=m[0];
        for (int i=0, i<5, i++);
        {
                if (n<m[i])
                        n=m[i];
        }
        printf("n=%d\n",n);
        return 0;
}
Исправил, но все равно
error C2143: синтаксическая ошибка: отсутствие "," перед "<"
error C2086: int i: переопределение
0
KATbIK
86 / 81 / 28
Регистрация: 02.08.2011
Сообщений: 335
11.11.2011, 15:18 4
C++
1
2
3
4
5
6
  for (int i=0; i<5; i++)
        {
                if (n<m[i])
                        n=m[i];
        }
}
0
Nursik77
273 / 233 / 30
Регистрация: 05.04.2011
Сообщений: 645
11.11.2011, 15:27 5
Нужно найти сумму элементов между макс и мин а наоборот? Пока что держите такой вариант:
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
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define N 10
 
int main() {
    int i, max, max_i, min, min_i, sum;
    int arr[N];
    srand(time(NULL));
    printf("Array: ");
    for(i = 0; i < N; i++) {
    arr[i] = rand()%100+1;
    printf("%i ",arr[i]);
    }
    /*-------ГЌГ*õîæäåГ*ГЁГҐ Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*--------*/
    max = arr[0];
    for(i = 0; i < N; i++) 
    if(arr[i] > max) {
    {max = arr[i];
    max_i = i;}
    } 
    printf("\nThe value of max element = %i", max);
    /*------------------------------------------------*/
    
    /*-------ГЌГ*õîæäåГ*ГЁГҐ ìèГ*ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*---------*/
    min = arr[0];
    for(i = 0; i < N; i++) 
    if(arr[i] < min) {
    {min = arr[i];
    min_i = i;}
    }
    printf("\nThe value of min element = %i", min);
    /*------------------------------------------------*/
    if(max_i < min_i) {
    /*--------ÑóììГ* ìåæäó Г¬Г*ГЄГ± ГЁ ìèГ* ýëåìåГ*ГІГ*ìè-------*/
    sum = 0;
    for( i = max_i; i <= min_i; i++)
    sum = sum + arr[i];
    printf("\nSum of array between max and min el-ts = %i", sum); }
    else {
    /*--------ÑóììГ* ìåæäó ìèГ* ГЁ Г¬Г*ГЄГ± ýëåìåГ*ГІГ*ìè-------*/
    sum = 0;
    for( i = min_i; i <= max_i; i++)
    sum = sum + arr[i];
    printf("\nSum of array between min and max el-ts = %i", sum); }
    
system("pause");
}
Добавлено через 7 минут
Кое-что добавил, скопируйте заново!
1
Devil7
0 / 0 / 2
Регистрация: 05.10.2011
Сообщений: 97
11.11.2011, 15:51  [ТС] 6
Спасибо щас посижу посмотрю. Все работает но выдает: Необработанное исключение в "0x00be1558" в "nnnn.exe": 0xC0000005: Нарушение прав доступа при чтении "0x33622a30" и показывает желтой стрелкой на строчку
C
1
sum = sum + arr[i];
Добавлено через 14 минут
А все, норм, заработала. Спасибо огромное!
0
lemegeton
2936 / 1365 / 467
Регистрация: 29.11.2010
Сообщений: 2,725
11.11.2011, 15:54 7
Еще вот такой.
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
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <numeric>
#include <cstdlib>
#include <ctime>
 
template <int min, int max>
struct RandomInteger {
  int operator()() {
    return rand() % (max - min + 1) + min;
  }
};
 
std::ostream &operator<<(std::ostream &stream,
  const std::vector<int> &array) {
  for (std::vector<int>::const_iterator i = array.begin();
    i != array.end(); ++i)
    stream << (*i) << (((i + 1) != array.end()) ? ", " : "");
  return stream;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  size_t arraySize = 45;
 
  std::vector<int> array(arraySize);
  std::generate(array.begin(), array.end(), RandomInteger<-5, 5>());
  
  std::cout << array << std::endl;
 
  std::vector<int>::iterator begin = std::min_element(array.begin(),
    array.end());
  std::cout << "Firts min element is " << *begin << " at index " <<
    (begin - array.begin()) << std::endl;
 
  std::vector<int>::iterator end = std::max_element(array.begin(),
    array.end());
  std::cout << "First max element is " << *end << " at index " <<
    (end - array.begin()) << std::endl;
    
  if (begin > end) std::swap(begin, end);
 
  std::cout << "Sum between min and max is " <<
    std::accumulate(begin + 1, end, 0) << std::endl;
}
1
Nursik77
273 / 233 / 30
Регистрация: 05.04.2011
Сообщений: 645
11.11.2011, 16:42 8
Devil7, у меня возникли некие сомнения на счет предыдущей версии и я несколько переделал прогу, так будет намного лучше:
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 <stdlib.h>
#include <stdio.h>
#include <time.h>
#define N 10
 
int main() {
    int i, max, max_i, min, min_i, sum;
    char ch;
    
    int arr[N];
    srand(time(NULL));
    
    do {
        
    printf("Array: ");
    for(i = 0; i < N; i++) {
    arr[i] = rand()%100+1;
    printf("%i ",arr[i]);
    }
    /*-------ГЌГ*õîæäåГ*ГЁГҐ Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*--------*/
    max = arr[0];
    max_i = 0;
    for(i = 0; i < N; i++) 
    if(arr[max_i] < arr[i]) {
    max = arr[i];
    max_i = i;
    } 
    printf("\nThe value of max element = %i", max);
    /*------------------------------------------------*/
    
    /*-------ГЌГ*õîæäåГ*ГЁГҐ ìèГ*ГЁГ¬Г*ëüГ*îãî ýëåìåГ*ГІГ*---------*/
    min = arr[0];
    min_i = 0;
    for(i = 0; i < N; i++) 
    if(arr[min_i] > arr[i]) {
    min = arr[i];
    min_i = i;
    }
    printf("\nThe value of min element = %i", min);
    /*------------------------------------------------*/
    if( min_i > max_i ) {
    /*--------ÑóììГ* ìåæäó Г¬Г*ГЄГ± ГЁ ìèГ* ýëåìåГ*ГІГ*ìè-------*/
    sum = 0;
    for( i = max_i+1; i < min_i; i++)
    sum = sum + arr[i];
    printf("\nSum of array between max and min el-ts = %i", sum); }
    else if ( min_i < max_i ){
    /*--------ÑóììГ* ìåæäó ìèГ* ГЁ Г¬Г*ГЄГ± ýëåìåГ*ГІГ*ìè-------*/
    sum = 0;
    for( i = min_i+1; i < max_i; i++)
    sum = sum + arr[i];
    printf("\nSum of array between min and max el-ts = %i", sum); }
    
    printf("\n\nContinue? (y/n): ");
        } while ( scanf("%c%*c", &ch) == 1 && ( ch == 'y' || ch == 'Y' ) );
    return 0;
}
Сумма находится только между макс и мин, а не включительно.
1
11.11.2011, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 16:42

Найти сумму положительных элементов массива, расположенных между минимальным и максимальным элементами
Попросили решить задачу,дан массив чисел,нужно вывести два числа, разделенных...

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

Найти квадраты всех чисел, расположенных между минимальным и максимальным значениями массива
Дан массив из 18 вещественных чисел, все элементы которого различны. 1) Найти...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru