![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
![]()
Собственно сам код:
#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 Так надо ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
потому что вы складываете коды символов, а не числа, которые записаны в строке. пробуйте atoi или тупо: k=k+s[i] - '0';
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
![]()
Спасибо, заработало, но что значит -'0'? Я разобраться хочу
![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
символы в кодовой странице идут по порядку: 0,1,2 и т.д.
соответственно '9' == '0' + 9 соответственно код символа - код нуля = число ) |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
![]()
СПС, теперь понятно
![]() ![]() ![]() П.С. Понравился ваш форум. Тут можно получить дельные ответы. |
![]() |
![]() |
![]() |
#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(); } Он работает, если слова разделены одним пробелом. А как видоизменить код, чтобы слова разделялись одним или несколькими пробелами? Я вот не смог придумать ![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 25.10.2008
Сообщений: 30
|
![]()
Что, никто не знает
![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Как-то так наверно (писал здесь и не проверял на работоспособность) :
Код:
|
![]() |
![]() |
![]() |
#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 |