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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2009, 00:02   #1
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
Вопрос по вводу слов в массив и подсчёт введённых слов

как можно решить эту задачу:Напишите программу,использующую массив char и цикл для чтения по одному слову за раз до тех пор,пока не будет введено слово done.Затем прога должна сообщить кол-во введённых слов(исключая done).Вы должны включить заголовочный файл cstring и использовать функцию strcmp() для выполнения проверки.
PS:Я не пойму как мне указать условие чтобы цикл осуществлял проверку до введения слова done?

Код:
#include <cstdlib>
#include <iostream>
#include<cstring>

using namespace std;

int main(int argc, char *argv[])
{
char buf[100];
cout<<"vvedite slova (dlya zavershenia-vvedite slovo done): ";
int sum=0;
for(int i=0;strcmp(buf,"done");i++)
{
for(i=0;i<100;i++)
{
cin.getline(buf,100);
sum+=int(buf);
}
//sum+=int(buf);
}
cout<<"vi vveli "<<sum<<"slov\n";
system("PAUSE");
return EXIT_SUCCESS;
}
Модератор: тег CODE

Последний раз редактировалось Sazary; 16.11.2009 в 00:50.
-ushёl- вне форума Ответить с цитированием
Старый 16.11.2009, 00:06   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от -ushёl-
Код:
for(int i=0;strcmp(buf,"done");i++)
{
for(i=0;i<100;i++)
{
cin.getline(buf,100);
sum+=int(buf);
}
//sum+=int(buf);
}
вот этот цикл лучше переписать через while, так как i(счётчик) здесь нигде не используется. Как-нибудь так:
Код:
int sum = 0;
while(true) {
    cin >> buf;
    if( !strcmp(buf, "done") ) // Если строки равны, то strcmp вернёт 0
        break;
    sum++;
}
sum += int(buf) - приведёт указатель buf к int и прибавит к sum, это определённо не то, что нужно по заданию.

Последний раз редактировалось netrino; 16.11.2009 в 00:09.
netrino вне форума Ответить с цитированием
Старый 16.11.2009, 00:19   #3
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

А возможно решить без участия if и break?Дело в том,что я пробую решать задания из книги(там после каждой главы есть задания) и ещё не дошол до if ,пробую предоставленные методы...
sum += int(buf) - приведёт указатель buf к int и прибавит к sum, это определённо не то, что нужно по заданию.-А как по другому считать сумму я незнаю и темболее компл выдаёт ошибку без приведения к int
-ushёl- вне форума Ответить с цитированием
Старый 16.11.2009, 00:26   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

В этой книге циклы даются раньше, чем условные операторы? О_о
Ну можно так ещё:
Код:
int sum=0;
do {
	cin >> buf;
	sum++;
} while( strcmp(buf, "done") );
sum--;
Или так:
Код:
int sum;
for(sum = 0; strcmp(buf, "done"); sum++)
	cin >> buf;
sum--;
netrino вне форума Ответить с цитированием
Старый 16.11.2009, 00:45   #5
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
По умолчанию

С.Прата-язык прграммирования C++ Лекции и упражнения.Щас закончил 5главу(циклы)=) 6 глава как раз операторы ветвления.Вообще книга хорошая,всё объясняется впринципе хорошо!Может автор так задумал,не знаю.
-ushёl- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19
Pascal. На подсчет слов и на массив Lot Помощь студентам 2 24.12.2008 18:35
Помогите составить массив слов nec117 Общие вопросы C/C++ 2 20.10.2008 21:17
c\c++ массив слов FreeJaile Общие вопросы C/C++ 7 04.04.2008 00:39