Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 93
1

Если в последовательности a1 ,…, an есть хотя бы один член, равный х, то получить сумму всех членов, следующих за первым

15.01.2018, 16:55. Просмотров 1122. Ответов 17
Метки нет (Все метки)

Дано натуральное число n. Если в последовательности a1 ,…, an есть хотя бы один член, равный х, то получить сумму всех членов, следующих за первым таким членом, в противном случае дать соответствующее сообщение.
Помогите, пожалуйста исправить ошибки, некорректно считает сумму. И куда правильнее запихнуть сообщение об отсутствии совпадений
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
#include <windows.h>
#include<iostream.h>            
  char bufRus[256];         
  char* Rus(const char* text)   
  {
     CharToOem(text,bufRus);    
     return bufRus;          
  }
void main (void)
{
int i, t, x, n, sum, a[20]={18,4,1,32,8,54,13,12,19,2,5,14,11,8,7,9,6,1,8,3};  
    cout<<Rus("Введите количество элементов последовательности : "); cin>>n;
    cout<<Rus("Введите значение x : "); cin>>x;
    cout << "\n";
    cout<<Rus("Последовательность a: ")<<"\n"; 
    for (i=0;i<n;i++)           
    {                                           
        cout <<a[i]<< " ";
    } 
    cout << "\n";
    
    for (i=0;i<n;i++)           
    {
        if (a[i]=x) t=i; 
    }
        sum=0;
            for (i=t;i<n;i++)
            {
                sum+=a[i];
            }   
        cout<<Rus("Сумма : ")<<sum<<"\n";
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2018, 16:55
Ответы с готовыми решениями:

Если есть хотя бы один член равный a, то получить сумму всех членов, следующих за первым таким членом.
Дано число a. С клавиатуры вводится последовательность натуральных чисел. Признак конца ввода – 0....

Массив. Если в массиве есть хотя бы один член, равный А, то получить сумму всех членов, следующих за первым таким членом
даны натуральное число N, целое число А и массив X(n). Если в массиве X(n) есть хотя бы один член...

Если в последовательности есть член, равный а, то получить сумму всех членов, следующих за ним
Помогите решить: 1. Даны натуральное число n, целые числа a, x1,..., xn. Если в последовательности...

Если в последовательности x1, …, xn есть хотя бы один член, равный a, то вывести сумму всех членов
Если в последовательности x1, …, xn есть хотя бы один член, равный a, то вывести сумму всех членов,...

17
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 17:35 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
26
27
28
29
30
31
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
   int n = 0;
   int count = 0;
   cin >> n;
   cin >> count;
   int * arr = new int[count];
   for(int i =0; i<count;i++){
       cin >> arr[i];
   }
   int index_of = 0;
   int super_index = 0;
   for(int i = 0;i<count;i++){
       if(arr[i] == n){
           index_of = i;
           super_index = 1;
           break;
       }
   }
   if(super_index==0){
       cout << "sorry, but ..." << endl; // ляляляля сам поставишь - ещё уроки делать
       return 0;
   }
   int sum = 0;
   for(int i = index_of - 1;i< count;i++){
       sum += arr[i];
   }
   cout << sum;
}
0
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 93
15.01.2018, 17:44  [ТС] 3
Цитата Сообщение от LegionK Посмотреть сообщение
#include <iostream>
А можно, пожалуйста, просто поправить мой код, мне тяжело в вашем с ориентироваться. И у меня обязательно должна храниться последовательность чисел в памяти компьютера.
0
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 17:49 4
Sweet_mama, Сорян, я фиг знает,что такое CharToOem и зачем тебе чудовище в 11 строке. Могу, конечно, комментарии поставить, но если не надо - соре. А, ещё объясни плез, что значит "храниться в памяти компьютера", как минимум в твоей понимании?
0
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 93
15.01.2018, 18:05  [ТС] 5
Цитата Сообщение от LegionK Посмотреть сообщение
Sweet_mama, Сорян, я фиг знает,что такое CharToOem и зачем тебе чудовище в 11 строке. Могу, конечно, комментарии поставить, но если не надо - соре. А, ещё объясни плез, что значит "храниться в памяти компьютера", как минимум в твоей понимании?
1. Это для работы с русскими буквами, от нас требуют именно так так показали, старая версия 6.0
2. Вообщем массив должен быть изначально объявлен вот так a[20]={18,4,1,32,8,54,13,12,19,2,5,14,11,8,7,9,6,1,8,3};
3. мне главное с серединой разобраться, не обязательно весь код повторять, я вот тут немного по другому переделала, лучше стало, но все равно не верно как-то считает
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
void main (void)
{
int i, j, x, n, count=0, sum=0, a[20]={18,4,1,32,8,54,13,12,19,2,5,14,11,8,7,9,6,1,8,3};  
    cout<<Rus("Введите количество элементов последовательности : "); cin>>n;
    cout<<Rus("Введите значение x : "); cin>>x;
    cout << "\n";
    cout<<Rus("Последовательность a: ")<<"\n"; 
    for (i=0;i<n;i++)           
    {                                           
        cout <<a[i]<< " ";
    } 
    cout << "\n";
    for (i=0;i<n;i++)           
    
        if (a[i]=x) 
        {
            for (j=i+1;j<n;j++)         
                sum+=a[j];          
                cout<<Rus("Сумма : ")<<sum<<"\n";
                //break;
        }   
        else
            count++;
        if(count == n) 
        cout<<Rus("Совпадений нет! ")<<"\n";
}
Добавлено через 11 минут
Все, спасибо, я разобралась, все работает.
0
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 18:06 6
Sweet_mama, ну и славно
0
4219 / 2887 / 1780
Регистрация: 18.12.2017
Сообщений: 9,024
15.01.2018, 18:10 7
LegionK, всё ли верно в коде ? скажите почему например цикл ввода идёт до count ? (ведь их n)
0
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 18:25 8
Yetty, в чьем коде?
0
4219 / 2887 / 1780
Регистрация: 18.12.2017
Сообщений: 9,024
15.01.2018, 18:27 9
Цитата Сообщение от LegionK Посмотреть сообщение
в чьем коде?
до count только в Вашем коде идёт. " х " из условия тоже не заметно.
0
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 18:37 10
Yetty, звиняй, но по-моему, единственное что неправильно - там не index_of -1 , а index_of +1
0
1731 / 1326 / 1405
Регистрация: 28.10.2016
Сообщений: 4,265
15.01.2018, 18:37 11
Зачем всё так усложнять?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    int x, sum = 0, a[20] = { 18,4,1,32,8,54,13,12,19,2,5,14,11,8,7,9,6,1,8,3 };
    bool b = false; //примет значение true если элемент найден
    cout << "X = "; cin >> x;
    for (int i = 0; i < 20; i++) {
        if (b) sum += a[i];
        if (a[i] == x && !b) b = !b;
    }
    if (b) cout << "Sum = " << sum << "\n"; else cout << "Not Found\n";
}
0
4219 / 2887 / 1780
Регистрация: 18.12.2017
Сообщений: 9,024
15.01.2018, 18:41 12
Цитата Сообщение от LegionK Посмотреть сообщение
но по-моему, единственное что неправильно - там не index_of -1 , а index_of +1
я говорил про ввод (первый цикл). Вы данные заводили в свою программу?
0
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 18:43 13
Yetty, да, а что?
0
4219 / 2887 / 1780
Регистрация: 18.12.2017
Сообщений: 9,024
15.01.2018, 18:48 14
Цитата Сообщение от LegionK Посмотреть сообщение
Yetty, да, а что?
ещё раз. у нас n чисел. Вы вводите не n чисел, а count чисел. то есть другое количество чисел.
0
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 18:55 15
Yetty, ну? У меня наоборот - count - кол-во чисел в этом массиве, а n - искомое число. Не вижу особой разницы в разных названиях, если все работает :/
0
Hitoku
15.01.2018, 18:58
  #16

Не по теме:

Напомню, что выше есть короткий и рабочий вариант. Если кому интересно :D

0
4219 / 2887 / 1780
Регистрация: 18.12.2017
Сообщений: 9,024
15.01.2018, 19:04 17
Цитата Сообщение от LegionK Посмотреть сообщение
У меня наоборот - count - кол-во чисел в этом массиве, а n - искомое число.
даже если это так (что само по себе не верно так как не соответствует условию где чётко указывается: n - количество чисел) то при вводе 5 10, затем ввод чисел 1 2 3 4 5 6 7 8 9 1 Ваша программа выдаёт: 40. А должно получиться 31.
0
Че,пацаны,аниме?
236 / 175 / 152
Регистрация: 02.05.2017
Сообщений: 705
15.01.2018, 19:13 18
Цитата Сообщение от LegionK Посмотреть сообщение
Yetty, звиняй, но по-моему, единственное что неправильно - там не index_of -1 , а index_of +1
Не? Все,отстань, если надо - строчи в лс
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2018, 19:13

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

Получить сумму всех членов последовательности, следующих за первым заданным
В чём ошибка? Даны натуральное число n и целые числа q, a1,…,an, где n≤1000. Если в...

Если в массиве есть элемент, равный числу P, то получить среднее арифметическое всех элементов, следующих за первым таким элементом
Дана линейная таблица, которая содержит N целых чисел. Если в таблице есть хотя бы один элемент,...

Есть ли в последовательности хотя бы один член,равный q
Вариант №4.Дано натуральное число n и целые числа a,a1,...an где n&lt;=1000.Если в последовательности...

Если в массиве есть хотя бы один элемент, равный x, то получить сумму элементов
Дано натуральное число n, целое x и массив целых чисел a . Если в массиве есть хотя бы один...


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

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

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