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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
#1

Помагите написать функции для следующей программы - C++

04.06.2010, 19:00. Просмотров 2232. Ответов 46
Метки нет (Все метки)

Помагите написать функции для следующей программы
1)создать функцию в которой,как параметр передаётся строка и которая возвращает колличество слов в строке
2)создать функцию для строки , которую вводят с клавиатуры и которая считает колличество слов начинающихся с первой буквы этой строки
3)создать функцию ,которую вводят с клавиатуры и которая считает колличество слов в строке
В mainе через оператор case зделать менюшку в которой бы они все вызывались
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2010, 19:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помагите написать функции для следующей программы (C++):

Написать программу вычисления следующей функции - C++
Написать программу вычисления следующей функции y=\begin{cases} bx+cx & \text{ , } b \lt c \\ sin(x)+b & \text{ , } b=c \\ ...

Для данного вещественного x найти значение следующей функции f, при-нимающей значения целого типа: - C++
Для данного вещественного x найти значение следующей функции f, при-нимающей значения целого типа: 0, если x < 0, f(x) = 1, если...

Доделать задачу. Для данного вещественного x найти значение следующей функции f, принимающей значения целого типа - C++
Помогите доделать задачу. #include <iostream> using namespace std; int main() { double x; int y; cout << "x =...

Пожалуйсто помагите написать эти две задачи на с++ - C++
Пожалуйсто помагите написать эти две задачи на с++ ссесию мне бе них не закрыть а никто не понимает((((( ребят если кто знает как сделать...

Объясните результат работы следующей программы - C++
double x =1.23456789; for(int i=0; i<1030;i++) x=x/2; for( int i=0; i <1030;i++) x=x*2; cout.precision (12); ...

Помогите написать код программы с использованием функции!!! - C++
Реализовать функцию, которая переписывает элементы входного массива в обратном порядке. На вход функция получает указатель на первый...

46
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
05.06.2010, 16:09 #16
Все правильно, там же строка, как параметр передается по условию задания, ее вводить не надо. Можешь добавить cout'ов для красоты. Например в 1 ф-цию добавить :
C++
1
case 1: std::cout<<"String \"bla bla bla\" has "<<countword("bla bla bla")<<" words"<<std::endl;
1
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
05.06.2010, 16:48  [ТС] #17
теперь понятно,спасибо ещё раз
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
05.06.2010, 17:00 #18
Пожалуйста!
0
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
07.06.2010, 16:51  [ТС] #19
попробывал преподу сдать эту лабу оказалась она неправильно работает,дело в том что если ввести три и более пробела то она неправильно работает это касается всех трёх функций, исправь пожалуйста
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
07.06.2010, 16:59 #20
именно для этого есть строка:
C++
1
while(str[i]==' ')++i;
ее нет только в 3ей фунции, можешь добавить ее туда.(может просто забыл) Только что сам пробовал, ввел 20(!) пробелов, работатет правильно.
0
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
07.06.2010, 17:02  [ТС] #21
если несложно,можеш в уже полностью исправленом виде прислать
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
07.06.2010, 17:03 #22
Интересно, а препод это по коду понял, или на самой программе?
0
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
07.06.2010, 17:03 #23
и во вторую следует добавить проверку - что первый элемент строки не пробел.
0
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
07.06.2010, 17:05  [ТС] #24
препод заметил по коду
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
07.06.2010, 17:06 #25
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
int countword(char*);
int _countword();
int countword();
int main (){
    char str[80];
    std::cout<<"For 1st function, press 1"<<std::endl<<"For 2nd function, press 2"<<std::endl\
    <<"For 3rd function, press 3"<<std::endl;
    int i;
    std::cin>>i;
    std::cin.ignore();
    switch (i){
        case 1: std::cout<<countword("bla bla bla")<<std::endl;
        break;
        case 2: std::cout<<_countword()<<std::endl;
        break;
        case 3:std::cout<<countword()<<std::endl;
        }
    system("pause");       
    return 0;
}
int countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets (str);
    int count=1;
    for(int i=0;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' ')++i;
        }    
        return count;
    }
int countword(char* str){
    int count=1;
    for(int i=0;str[i]!='\0';i++)
        if(str[i]==' '){
            count++;
            while(str[i]==' ')++i;
        } 
        return count;
    }  
int _countword(){
    char str[80];
    std::cout<<"Vvedite stroku :";
    gets(str);
    int count=1;
    char ch=str[0];
    for(int i=1;str[i]!='\0';i++){
        if(str[i]==' '&&str[++i]==ch)count++;
        while(str[i]==' ')++i;}  // эту строку добавить!!!
        return count;
    }
1
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
07.06.2010, 17:07  [ТС] #26
спасиб
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
07.06.2010, 17:08 #27
Цитата Сообщение от mexx-nikitin Посмотреть сообщение
препод заметил по коду
Он скорее всего ждал, что ты с ним начнешь спорить, и покажешь эту строку. Либо препод латентный преверженец растакультуры(всмысле курит)

Добавлено через 48 секунд
скомпилируй программу, сам убедись - все работает!
0
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
07.06.2010, 17:23  [ТС] #28
а поначалу этот косяк и я сам заметил ,но потом подумал, что препод незаметит))

Добавлено через 8 минут
смотри , а если в 3 функции вести сночала пробел а потом слово то опять ошибка

Добавлено через 5 минут
if(str[i]==' '&&str[++i]==ch),а в чём здесь отличие str[i] от str[++i]
0
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
07.06.2010, 17:51 #29
Блин, mexx-nikitin, сбил ты меня со своим преподом) Я начал думать, как так я ступил, когда этот код писал, подумал, подумал и понял - я тогда неступил, я сейчас ступил! Не нужна там эта строка, было все правильно. Там же ф-ция считает кол-во слов, начинающихся на первую букву в предложении.
if(str[i]==' '&&str[++i]==ch),а в чём здесь отличие str[i] от str[++i]
отличие в том, что str[i] это текущий символ, а str[++i]- это следующий символ.
смотри , а если в 3 функции вести сночала пробел а потом слово то опять ошибка
ага, исправлю, только маленько попозже(сегодня), сейчас занят.
0
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
07.06.2010, 18:11  [ТС] #30
к стати в 1-ой и 2-й такая же штука с пробелом,но если сночала символы вводить , а потом пробел то всё правильно
0
07.06.2010, 18:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2010, 18:11
Привет! Вот еще темы с ответами:

Написать программы которые бы выполняли такие функции - C++
для определения времени и даты создания файла, имя которого задает пользователь. для выполнения задержки в n секунд, используя прерывание...

Написать функцию, организовать ее вызов в главной функции программы - C++
Помогите, пожалуйста, написать программу. Только начали изучать функции, не могу понять, как надо сделать.

Какой ответ получим после запуска следующей программы - C++
Какой ответ получим после запуска следующей программы( пожалуйста не работает с++) : #include&quot;stdafx.h&quot; #include&lt;iostream&gt; Using...

Какой ответ получим после запуска следующей программы - C++
Какой ответ получим после запуска следующей программы : #include&quot;stdafx.h&quot; #include&lt;iostream&gt; using name spacestd; int main() ...


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

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

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