Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Latunsk
1 / 1 / 0
Регистрация: 18.02.2014
Сообщений: 44
#1

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

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

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

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

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

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

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

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

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

8
bradobrei
Продам уран 238U
119 / 119 / 23
Регистрация: 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
Модератор
22995 / 11362 / 1850
Регистрация: 12.02.2012
Сообщений: 18,604
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 / 0
Регистрация: 18.02.2014
Сообщений: 44
26.03.2014, 16:56  [ТС] #4
Спасибо большое!!!
0
Vtulhu
371 / 377 / 96
Регистрация: 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Эксперт С++
9722 / 5673 / 972
Регистрация: 25.07.2009
Сообщений: 10,919
27.03.2014, 16:35 #6
Цитата Сообщение от Vtulhu Посмотреть сообщение
Вот более идиоматичненько:
Только тогда прийдётся считать сумму всех элементов массива, сравнивать с тем, что вернёт эта чудо-функция и, если значения совпадут, выдавать сообщение, что элемент со значением b не найден. Что, кстати, тоже не комильфо - сумма элементов до некоторого значения вполне может совпасть с суммой всех элементов. ТруЪ вэй - сначала искать элемент, найдётся - считать сумму, не найдётся - писать сообщение...
0
Vtulhu
371 / 377 / 96
Регистрация: 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 / 0
Регистрация: 26.04.2014
Сообщений: 121
27.04.2014, 11:24 #8
а в паскале можно пожалуйста?
0
Catstail
Модератор
22995 / 11362 / 1850
Регистрация: 12.02.2012
Сообщений: 18,604
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
Привет! Вот еще темы с ответами:

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

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

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

Задана матрица разамером М на N. Получить массив B присвоив К-му элементу значение равное сумме элементов К-той строки - Delphi
Задана матрица разамером M на N. Получить массив B присвоив К-му элементу значение равное сумме элементов К-той строки. Помогите...


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

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

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