Loading...
VeselaBorislavova avatar VeselaBorislavova 1 Точки

5 задача от 3 домашно

Имам грешка при сумата. Ако може някой да я погледне и да ми помогне.

#include <iostream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;

int main()
{
    string text;
    getline(cin, text);

    istringstream textIn(text);

    vector<string> words;
    string currentWord;
    while(textIn>>currentWord)
    {
        words.push_back(currentWord);
    }

    vector<int> numbers;
    int sum=0;
    for(int i=0;i<words.size();i++)
    {
        if(words[i]<'A'&&words[i]>'Z'&&words[i]<'a'&&words[i]>'z')
        {
            sum+=words[i];
        }
    }

    ostringstream resultOut;
    resultOut<<sum<<endl;
    cout<<resultOut.str();

    for(int i=0;i<text.size();i++)
    {
        if((text[i]>='A'&&text[i]<='Z')||(text[i]>='a'&&text[i]<'z'))
        {
            cout<<text[i];
            if(text[i+1]==32)
            {
                cout<<" ";
            }
        }
    }

    return 0;
}

Тагове:
0
C++ Fundamentals
TulayTunaeva avatar TulayTunaeva 13 Точки
Best Answer

Аз съм с почти същият проблем ;(((

0
sun_seeker avatar sun_seeker 15 Точки

Оправи ли се със задачата?

0
LASlavtchev avatar LASlavtchev 1 Точки

Мисля, че проблема е тука

vector<int> numbers;
    int sum = 0;
    for (int i = 0; i<words.size(); i++)
    {
        if (words[i] <'A'&& words[i] >'Z'&&words[i] <'a'&&words[i] >'z')
        {
            sum += words[i];
        }
    }

Правиш операции със стрингове, а трябва да са инт.

Но и аз имам проблеми с тия задачи. По долу е моето решение, ама запича на отрицателно число и забих.

#include <iostream>
#include <string>
#include <vector>
#include <sstream>

using namespace std;

int main()
{
	string input_line = "1 2 3 invalid -4";
	//getline(cin, input_line);

	istringstream in(input_line);
	ostringstream out_numbers;
	ostringstream out_words;
	string temporary;
	while (in >> temporary)
	{
		for (int i = 0; i < temporary.size(); i++)
		{
			if (isdigit(temporary[i]) || temporary[i] == '-')
			{
				out_numbers << temporary[i];
			}
			else if (temporary[i] != '-')
			{
				out_words << temporary[i];
			}
		}
	}
	string numbers = out_numbers.str();
	string words = out_words.str();

	unsigned int number;
	vector <int> store_numbers;
	istringstream in_number(numbers);
	while (in_number >> number)//проблема ми е тука.дели там, където има - за отрицателно число
	{
		store_numbers.push_back(number);
	}

	int sum = 0;
	for (int i = 0; i < store_numbers.size(); i++)
	{
		sum += store_numbers[i];
	}
	cout << sum << endl;
	cout << words << endl;
	return 0;
}

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.