Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2011, 00:21   #1
StasDeGraf
Новичок
Джуниор
 
Регистрация: 03.11.2011
Сообщений: 2
По умолчанию программа по строкам

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

мой код, который не работает....((

#include <iostream>
#include <cstring>
#include <string.h>
#include <stdio.h>
#include <windows.h>
using namespace std;

int Number(char *Sentence)
{
int Words=0;
for (int i=0; Sentence[i]!='\0'; i++)
{
if (Sentence[i]==' ')
{
Words++;
}
}
return Words+1;
}



int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char *SentenceEntered;
SentenceEntered = new char [80];
memset(SentenceEntered,'*',79);
SentenceEntered[79]='\0';
char *Sentence1;
Sentence1= new char [80];
memset(Sentence1,'*',79);
Sentence1[79]='\0';
char *Sentence;
Sentence= new char [80];
memset(Sentence,'*',79);
Sentence[79]='\0';
int MaxWords=0;
int Wordis=0;
int n=0;
int k=0;
int YN=1;
while (YN==1)
{
cout<<"Введите строку"<<endl;
cin.getline(SentenceEntered,80);
int i=0;
while (SentenceEntered[i]!='\n' || SentenceEntered[i]!='*' || SentenceEntered[i]!='\0' )
if (SentenceEntered[i]!='.')
i++;
else
{
strncpy(Sentence,SentenceEntered,i) ;
int Wordis=Number(Sentence);
if (Wordis>MaxWords)
{
MaxWords=Wordis;
Sentence1=Sentence;
i++;
}
}
cout << "Будете ли Вы вводить строку Yes=1 , No=0" << endl;
cin>>YN;
}
cout<<"\nКоличество слов в строке: "<<MaxWords<<endl;
cout<<"\nСтрока, где больше всего слов: "<<Sentence1<< endl;
return 0;
}
StasDeGraf вне форума Ответить с цитированием
Старый 04.11.2011, 18:15   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>

using namespace std;


bool less_words(const string &s1, const string &s2)
{ return distance(istream_iterator<string>(istringstream(s1)), istream_iterator<string>()) <
         distance(istream_iterator<string>(istringstream(s2)), istream_iterator<string>()); }


int main()
{
	vector<string> strs;
	for(string s; getline(cin, s); strs.push_back(s));
	cout << *max_element(strs.begin(), strs.end(), less_words);

	return 0;
}
После ввода последней строки нажмите <Enter> + <Ctrl+z> + <Enter>
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 04.11.2011, 19:07   #3
StasDeGraf
Новичок
Джуниор
 
Регистрация: 03.11.2011
Сообщений: 2
По умолчанию

а по проще?)))просто тут написано сложными библиотеками...

я только пока знаю вот эти библиотеки ..
#include <iostream>
#include <cstring>
#include <string.h>
#include <stdio.h>
#include <windows.h>

Последний раз редактировалось StasDeGraf; 04.11.2011 в 19:20.
StasDeGraf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача по строкам hunter08923 Общие вопросы C/C++ 1 30.03.2011 08:31
По строкам Condor123 Помощь студентам 3 04.05.2010 10:09
Программа по строкам на С++. Spifex Общие вопросы C/C++ 0 14.01.2010 05:38
Задача на С++ по строкам EwwwA Помощь студентам 2 20.12.2008 15:22