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

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

Войти
Регистрация
Восстановить пароль
 
 
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
#1

не могу найти ошибку в программе - C++

11.06.2011, 13:44. Просмотров 980. Ответов 21
Метки нет (Все метки)

задача
Дана символьная строка. Подсчитать количество букв k в последнем ее слове
считает только буквы К в первом слове и выдаёт ошибку, а надо чтобы в последнем считало.

вот листинг

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
#include <iostream.h>
#include <conio.h>
//using namespace std;
 
int main(){
char* str;
int i,k;
cout<<"Vvedite stroku:\n";
scanf("%s",str);
cout<<"\n------\n";
k = 0;
i=strlen(str);
while(str[i]==' ') i--;
while(str[i]!=' '&&i>=0)
    if(str[i--]=='k') k++;
cout<<"Kolichestvo bukv: "<<k<<endl;
getch();
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2011, 13:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не могу найти ошибку в программе (C++):

Не могу найти ошибку в программе - C++
Здравствуйте! Не могу понять, как полностью отладить программу. Определенное понимание о характере ошибке есть( ниже прложил ее название),...

не могу ошибку найти в программе - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; double average(int ** matrix, int...

Не могу найти ошибку в программе - C++
# include &lt;iostream&gt; #include &lt;string&gt; #include &lt;math.h&gt; void main() { string str; char hex={'0', '1', '2', '3', '4',...

Не могу найти ошибку в программе - C++
Даны действительные числа х1, у1, х2, у2, …,х10, у10. Найти периметр десятиугольника, вершины которого имеют соответственно координаты (х1,...

Не могу найти ошибку в программе - C++
Добрый вечер, уважаемые программисты. Прошу у вас помощи с программой. Нужно её сдавать, а она не работает. Буду очень благодарен за любую...

Не могу найти ошибку в программе - C++
Разложение числа на сумму двух квадратов &quot;for(a=o;a&lt;=floor(sqrt(W));x++); for(b=0;b&lt;=floor(sqrt(w));y++); if(a*a+b*b==W) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
11.06.2011, 13:49 #2
C
1
for (int i=strlen(s)-1; s[i]!=' ' || i!=0; i--, k++);
вот весь код
1
Akkoks
0 / 0 / 0
Регистрация: 10.06.2011
Сообщений: 31
11.06.2011, 15:01 #3
хм...
0
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
11.06.2011, 16:07  [ТС] #4
увы не канает ( и постоянно выдаёт ошибку имя файла вызвал общую ощибку в модуле имя файла.ехе в 0001:01FA
0
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
11.06.2011, 16:21 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main()
{   
    char *s = "Hello kokok";
    int i, k;
 
    k = 0;
 
    for (i = strlen(s) - 1; i >= 0 && s[i] != ' '; i--) {
        if (s[i] == 'k') k++;
    }
    cout << k << endl;
    return 0;
}
0
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
11.06.2011, 16:29  [ТС] #6
ну как вариант, тока строку то вводить надо, поэтому то и мучаюсь, вечно на модуль защиты гонит и считывает максимум из 2 слова в строке
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.06.2011, 16:35 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <cstring>
int main(){
    char str[100];
    std::cin.getline(str,99);
    char * x; //тут будет лежать последнее слово
    for (char * p=strtok(str," ");p;p=strtok(0," "))
        x=p;
    int count = 0;
    for (;*x;count+=(*x++=='k')?1:0);
    std::cout << count;
    return 0;
}
1
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
11.06.2011, 16:36 #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<conio.h>
#include<stdio.h>
#include<string.h>
void main()
{
char str[255];
int i,j,k=0;
clrscr();//можно убрать
printf("Vvedite stroku: ");
gets(str);
for(i=0;i<strlen(str);i++)
 if (str[i]==' ') j=i;
for(i=j+1;i<strlen(str);i++)
if (str[i]=='k') k++;
printf("Simvola 'k' v poslednem slove %i\n",k);
getch();
}
1
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
11.06.2011, 16:40  [ТС] #9
всем пасиба, Нюсик твой вариант возьму за основу =) ещё раз благодарю всех
0
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
11.06.2011, 16:42 #10
Цитата Сообщение от rjkmrf1988 Посмотреть сообщение
всем пасиба, Нюсик твой вариант возьму за основу =) ещё раз благодарю всех
Нурсик!
1
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
11.06.2011, 16:43  [ТС] #11
Цитата Сообщение от Nursik77 Посмотреть сообщение
Нурсик!
пардонте нуRсик )))
0
Nursik77
11.06.2011, 16:43
  #12

Не по теме:

А тя наверное зовут Колька, расшифровал? хе-хе

0
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
11.06.2011, 16:44  [ТС] #13
точно так

горе си программер =)
0
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
11.06.2011, 16:51 #14
Все равно не пойму, если нужно подсчитать кол-во Х букв в последнем слове нафиг всю строку просматривать?
0
rjkmrf1988
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 48
11.06.2011, 16:52  [ТС] #15
не просматривать, строку надо вводить, у нас преподаватель суровая =) ей такие заранее заданные аргументы не канают =)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2011, 16:52
Привет! Вот еще темы с ответами:

Не могу найти ошибку в программе - C++
Не могу найти ошибку в программе #include &quot;stdafx.h&quot; #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;fstream.h&gt; #include...

Не могу найти ошибку в программе - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cctype&gt; #define is_delim(c) (std::isspace((c)) || std::ispunct((c))) using...

Не могу найти ошибку в программе - C++
Прога рабочая, но если вводишь х = 0 и у= 0 то она зацикливается на &quot;Ошибка! Начните заново.&quot; и не работает правильно. Хотя должна....

Не могу найти ошибку в простейшей программе - C++
#include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; #include &lt;cstdlib&gt; #include &lt;ctime&gt; int sqr( int x...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.06.2011, 16:52
Ответ Создать тему
Опции темы

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