|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.10.2008, 15:03 | #1 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
Помогите найти ошибку в коде C++
Собственно сам код:
#include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h> void main() { char s[100]; int k,i; k=0; clrscr(); cout<<"Vvedite stroku: "; gets(s); for (i=0; i<strlen(s); i++) k=k+s[i]; cout<<"sum: "<<k; getch(); } Не пойму, почему выдаёт неправильные значения суммы элементов строки. П.С. Работаю в Borland C++ 3.1 Так надо |
25.10.2008, 15:41 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
потому что вы складываете коды символов, а не числа, которые записаны в строке. пробуйте atoi или тупо: k=k+s[i] - '0';
|
25.10.2008, 15:51 | #3 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
Спасибо, заработало, но что значит -'0'? Я разобраться хочу
|
25.10.2008, 16:03 | #4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
символы в кодовой странице идут по порядку: 0,1,2 и т.д.
соответственно '9' == '0' + 9 соответственно код символа - код нуля = число ) |
25.10.2008, 16:05 | #6 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
СПС, теперь понятно
П.С. Понравился ваш форум. Тут можно получить дельные ответы. |
25.10.2008, 16:55 | #7 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
Задача такая:
1) подсчитать кол-во слов (слово - набор 0 и 1) в сторке, разделённых пробелами или группой пробелов 2) подсчитать кол-во слов, сумма элементов которых делится на 5 без остатка, слова разделены пробелом или группой пробелов Вот код: #include <iostream.h> #include <string.h> #include <conio.h> #include <stdio.h> void main() { char s[100]; int k,k2,sum,i; k=0; sum=0; k2=0; clrscr(); cout<<"Vvedite stroku: "; gets(s); for (i=0; i<strlen(s); i++) { if (s[i]!=' ') { sum=sum+s[i]-'0'; } if (s[i]==' ') { k++; if (sum%5==0) k2++; sum=0; } } cout<<"Kol-vo slov v stroke: "<<k<<endl; cout<<"Kol-vo slov, deljashihsja na 5 bez ostatka: "<<k2<<endl; getch(); } Он работает, если слова разделены одним пробелом. А как видоизменить код, чтобы слова разделялись одним или несколькими пробелами? Я вот не смог придумать |
25.10.2008, 20:43 | #8 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
Что, никто не знает?
|
25.10.2008, 22:47 | #9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Как-то так наверно (писал здесь и не проверял на работоспособность) :
Код:
|
26.10.2008, 18:21 | #10 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
Вот ещё создал код:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите найти ошибку в коде плиз | Айат | Помощь студентам | 2 | 01.10.2008 17:43 |
Памагите найти ошибку в коде...С++ | Goblin | Помощь студентам | 1 | 13.05.2008 18:15 |
Помогите исправить ошибку в коде... | prizrak1390 | Общие вопросы Delphi | 4 | 26.04.2008 13:19 |
помогите найти ошибку в коде | Joker88 | Помощь студентам | 1 | 04.03.2008 12:43 |