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

Ошибка в программе - C++

Восстановить пароль Регистрация
 
Shmotz
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 8
06.06.2011, 23:25     Ошибка в программе #1
Доброго времени суток.
Помогите исправить ошибку в программе.
Вот такое задание:
Нужна программа подсчёта букв С в предложении и вывести процент буквы относительно строки.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h> 
 #define N 100  
 int main() 
 { 
char  s[N];
char* p= s;
char  ch; 
int   count=  0;
float result= 0; 
printf("Input string: "); 
fgets(s, N, stdin); 
printf("Input symbol: "); 
ch = getchar(); 
while(*p) if(*p++ == ch) ++count ; 
if( strlen(s) ) result= 100 * count / strlen(s) ; 
printf("Result: %f%%\n", result); 
return 0; 
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2011, 23:25     Ошибка в программе
Посмотрите здесь:

Ошибка в программе C++
C++ Ошибка в программе
C++ Ошибка в программе
ошибка в программе Visual C++
C++ Ошибка в программе
Ошибка в программе C++
ошибка в программе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
07.06.2011, 12:29     Ошибка в программе #2
Цитата Сообщение от Shmotz Посмотреть сообщение
C
1
if( strlen(s) ) result= 100 * count / strlen(s) ;
C
1
if( strlen(s) ) result= 100.0 * count / strlen(s) ;
Shmotz
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 8
07.06.2011, 22:34  [ТС]     Ошибка в программе #3
Цитата Сообщение от kazak Посмотреть сообщение
C
1
if( strlen(s) ) result= 100.0 * count / strlen(s) ;
Спасибо но ошибка осталась ...
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
07.06.2011, 22:36     Ошибка в программе #4
Тогда можно поподробнее на счет ошибки?
voral
355 / 335 / 46
Регистрация: 16.03.2008
Сообщений: 1,723
07.06.2011, 23:01     Ошибка в программе #5
Если ввести 1234567890 количество будет 11, а вы наверняка ожидаете 10.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
07.06.2011, 23:05     Ошибка в программе #6
Ну дак fgets помещает в строку символ перевода строки, потому и 11 будет. Если раздражает, можно убрать допустим так:
C
1
p[strlen(s)-1] = '\0';
Shmotz
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 8
08.06.2011, 07:49  [ТС]     Ошибка в программе #7
Цитата Сообщение от kazak Посмотреть сообщение
Тогда можно поподробнее на счет ошибки?
Ошибка в программе
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.06.2011, 07:52     Ошибка в программе #8
C
1
#include <string.h>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 14:23     Ошибка в программе
Еще ссылки по теме:

C++ Ошибка в программе
ошибка в программе C++
C++ Ошибка в программе

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

Или воспользуйтесь поиском по форуму:
Shmotz
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 8
08.06.2011, 14:23  [ТС]     Ошибка в программе #9
Цитата Сообщение от kazak Посмотреть сообщение
C
1
#include <string.h>
о_О пошла
Странно, я эту библиотеку тоже писал ...
Yandex
Объявления
08.06.2011, 14:23     Ошибка в программе
Ответ Создать тему
Опции темы

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