Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Latunsk
1 / 1 / 4
Регистрация: 18.02.2014
Сообщений: 44
#1

Вектор. Переменной С присвойте значение, равное сумме всех элементов, предшествующих первому по порядку такому элементу - C (СИ)

26.03.2014, 12:21. Просмотров 562. Ответов 8
Метки нет (Все метки)

Если в заданном целочисленном векторе A(N) есть элементы со значением, равным заданному числу B, то переменной С присвойте значение, равное сумме всех элементов, предшествующих первому по порядку такому элементу; в противном случае вывести соответствующий текст.
Помогите пожалуйста! Не могу понять эту задачу( Как её решать??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2014, 12:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вектор. Переменной С присвойте значение, равное сумме всех элементов, предшествующих первому по порядку такому элементу (C (СИ)):

Вывести новый массив, в котором каждое значение равно корню из произведения всех предшествующих элементов
С одномерным массивом, состоящим из n вводимых с клавиатуры целых элементов...

Вычислить сумму элементов массива, предшествующих первой по порядку компоненте
Задача такова: Вычислить сумму элементов массива, предшествующих первой по...

Переменной Х присвоить значение, равное сумме всех положительных четных элементов, предшествующих первому
Если у массива А(10) есть элемент, равный В, то переменной Х присвоить...

Найти сумму всех положительных четных элементов массива, предшествующих первому по порядку такому элементу
#include <iostream> #include <ctime> using namespace std; int main()...

Подсчитать число элементов массива, предшествующих первому по порядку нулевому элементу
помогите сделать программу В массиве чисел D3 : D13 подсчитать число...

Найти среднеарифметическое значение элементов массива, предшествующих первому элементу, большему 50
Найти среднеарифметическое значение элементов вещественного массива A1, A2,...

8
bradobrei
Продам уран 238U
119 / 119 / 126
Регистрация: 22.01.2013
Сообщений: 298
26.03.2014, 13: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
#include <stdio.h>
#include <stdlib.h>
#define n 10
 
int main(){
int b = 6;
int c, sum = 0;
int a[n], i, tmp = -1;
printf("A: ");
for(i = 0; i < n; i++){
    a[i] = rand() % 10 + 1;
    printf("%d ", a[i]);
    if(a[i] == b)
        tmp = i;
    if(tmp == - 1)
        sum += a[i];
}
c = sum;
if(tmp == -1)
    printf("\nВывести какой-то текст");
else
    printf("\n c = %d", c);
return 0;
}
1
Catstail
Модератор
23525 / 11633 / 2034
Регистрация: 12.02.2012
Сообщений: 18,973
26.03.2014, 14:29 #3
bradobrei, нерационально. Как только элемент обнаружен, из цикла нужно выходить:

C
1
2
3
4
5
6
7
8
9
10
11
12
int func(int *A, int n, int b)
  {
         int s,i;
         s=0;
         for (i=0; i<n; i++)
             if (A[i] == b)
                return s;
             else
                if (A[i]>0) s+=A[i];
         printf("Нет числа %d\n",b); 
         return -1; 
}
1
Latunsk
1 / 1 / 4
Регистрация: 18.02.2014
Сообщений: 44
26.03.2014, 16:56  [ТС] #4
Спасибо большое!!!
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
27.03.2014, 12:29 #5
Catstail, у Вас решение хорошее, но много избыточного кода. Вот более идиоматичненько:

C
1
2
3
4
5
6
7
8
int sum_for_b(int* arr, size_t siz, int b)
{
    int sum = 0;
    while( siz-- && *arr != b ) {
        sum += *arr++;
    }
    return sum;
}
2
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
27.03.2014, 16:35 #6
Цитата Сообщение от Vtulhu Посмотреть сообщение
Вот более идиоматичненько:
Только тогда прийдётся считать сумму всех элементов массива, сравнивать с тем, что вернёт эта чудо-функция и, если значения совпадут, выдавать сообщение, что элемент со значением b не найден. Что, кстати, тоже не комильфо - сумма элементов до некоторого значения вполне может совпасть с суммой всех элементов. ТруЪ вэй - сначала искать элемент, найдётся - считать сумму, не найдётся - писать сообщение...
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
27.03.2014, 16:49 #7
Да, я невнимательно прочитал задание. К сожалению, ничего не известно о диапазоне чисел. Например, если бы было известно, что они неотрицательные, то можно было бы возвращать отрицательное, как признак того, что число b не было найдено. Можно даже устанавливать само число b в ноль. Но в общем случае остается только такой вариант:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
int sum_for_b(int* arr, size_t siz, int b, bool* b_found)
{
    *b_found = false;
    int sum = 0;
    do {
        if( *arr == b ) {
            *b_found = true;
            break;
        }
        sum += *arr++;
    } while( --siz );
    return sum;
}
0
ZaRinKa97
1 / 1 / 1
Регистрация: 26.04.2014
Сообщений: 121
27.04.2014, 11:24 #8
а в паскале можно пожалуйста?
0
Catstail
Модератор
23525 / 11633 / 2034
Регистрация: 12.02.2012
Сообщений: 18,973
27.04.2014, 11:55 #9
Цитата Сообщение от Vtulhu Посмотреть сообщение
Но в общем случае остается только такой вариант:
- равный по длине моему

Цитата Сообщение от ZaRinKa97 Посмотреть сообщение
а в паскале можно пожалуйста?
- в раздел "Паскаль"
0
27.04.2014, 11:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2014, 11:55
Привет! Вот еще темы с решениями:

Переменной l присвоить значение, равной сумме всех компонент, предшествующих ей
Задан целочисленный вектор a={a1, .. , an}, n&lt;=20. Если среди компонент этого...

Получить массив B, присвоив его k-му элементу значение равное сумме элементов k-го столбца.
Mawrat, добрый день,не могли бы вы подсказать решение этой задачи: 4. Задана...

Присвоить значение переменной, равное сумме элементов строки матрицы
Уважаемые программисты! у меня такая беда,не могу въехать в смысл этой задачи!...

Переменной Х присвоить значение, равное сумме положительных элементов матрицы
Дан массив А. Если среди элементов массива есть элемент, равный В то переменной...


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

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

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