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

Текст является десятичной записью числа, кратного 9 - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 07:42     Текст является десятичной записью числа, кратного 9 #1
Добрый всем день. Помогите мне решить данное задание , я плохо разбираюсь в этом языке программирования ,т.к. мягко говоря ,наш преподаватель - не компетентен.

1.Текст является десятичной записью числа, кратного 9.

Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2012, 07:42     Текст является десятичной записью числа, кратного 9
Посмотрите здесь:

C++ Определить, является ли текст десятичной записью числа, кратного 9
Определить, является ли текст шестнадцатеричной записью числа, кратного 5 (Pascal -> C++) C++
ООП. Определить, является ли текст десятичной записью числа, кратного 4 C++
C++ Строки: является ли текст записью десятичного числа, кратного 4
Определить, является ли текст двоичной записью числа кратного 6 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 15:06  [ТС]     Текст является десятичной записью числа, кратного 9 #21
Лжец, Не проходит


diagon, А это сработало Только всегда пишет true

Добавлено через 1 минуту
А если поменять местами , то пишет false. В чём проблемы ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 15:09     Текст является десятичной записью числа, кратного 9 #22
Цитата Сообщение от Takezo Kensai Посмотреть сообщение
А если поменять местами , то пишет false. В чём проблемы ?
А строку написать в файле "input.txt" вы не забываете?
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 15:11  [ТС]     Текст является десятичной записью числа, кратного 9 #23
Вот так сейчас код выглядит.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
 
int main()
{
    ifstream ifs("C:\Users\I_SEE_YOU\Desktop\input.txt");
    char sum = 0;
    for (char ch; ifs >> ch && isdigit(ch); sum += ch, sum %= 9);
    cout << (!ifs && !sum ? "true" : "false" );
    return 0;
}
Добавлено через 39 секунд
Цитата Сообщение от Лжец Посмотреть сообщение
А строку написать в файле "input.txt" вы не забываете?
Написал
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 15:15     Текст является десятичной записью числа, кратного 9 #24
Цитата Сообщение от Takezo Kensai Посмотреть сообщение
Написал
И все равно не работает? Попробуйте запустить exe'шник не из ide.
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 15:23  [ТС]     Текст является десятичной записью числа, кратного 9 #25
Цитата Сообщение от Лжец Посмотреть сообщение
И все равно не работает? Попробуйте запустить exe'шник не из ide.
Программа запускается , но выдаёт один и тот же ответ "true" даже притом , что я меняю текст в txt
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.06.2012, 15:27     Текст является десятичной записью числа, кратного 9 #26
А какой текст вы вводите в input.txt?
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 15:30     Текст является десятичной записью числа, кратного 9 #27
Цитата Сообщение от Takezo Kensai Посмотреть сообщение
Программа запускается , но выдаёт один и тот же ответ "true" даже притом , что я меняю текст в txt
Положите файл рядом с экзешником. Уберите путь из исходного кода, оставив только ifstream ifs("input.txt"); и сделайте ребилд, введите туда например 11 (выдаст результат false). После чего самостоятельно запустите экзешник, не через среду borland. Должно сработать Ошибки в коде - нет.
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 15:31  [ТС]     Текст является десятичной записью числа, кратного 9 #28
Цитата Сообщение от diagon Посмотреть сообщение
А какой текст вы вводите в input.txt?
что то вроде этого 1ыаы2цуа2уца3
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.06.2012, 15:33     Текст является десятичной записью числа, кратного 9 #29
Цитата Сообщение от Takezo Kensai Посмотреть сообщение
что то вроде этого 1ыаы2цуа2уца3
Ну так это русские символы.
Не факт, что они вообще правильно считываются и поток на них не ломается, но можно попробовать изменить условие
C++
1
for (char ch; ifs >> ch && ch >= '0' && ch <= '9'; sum += ch, sum %= 9);
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 15:34  [ТС]     Текст является десятичной записью числа, кратного 9 #30
А может быть косяк в том , что мне надо было перезапускать программу , когда я менял txtшник ?
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 15:37     Текст является десятичной записью числа, кратного 9 #31
Цитата Сообщение от Takezo Kensai Посмотреть сообщение
А может быть косяк в том , что мне надо было перезапускать программу , когда я менял txtшник ?
Вообще да Перезапустили, работает?
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 15:39  [ТС]     Текст является десятичной записью числа, кратного 9 #32
Цитата Сообщение от Лжец Посмотреть сообщение
Вообще да Перезапустили, работает?
Теперь пишет всё время "false")
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.06.2012, 15:41     Текст является десятичной записью числа, кратного 9 #33
Скорее всего, поток ломается из-за русских символов. Проблема именно в том, что вы используете символы, которые не влезают в тип char(точнее, они могут влезать, но это на всех компиляторах по разному реализовано).
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 15:41     Текст является десятичной записью числа, кратного 9 #34
Каждый раз, когда вы меняете значение в файле txt - программу нужно перезапускать Ну или переписать программу, что бы она постоянно проверяла значение в текстовом файле или требовала ввод с клавиатуры новой строки.
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 15:49  [ТС]     Текст является десятичной записью числа, кратного 9 #35
Цитата Сообщение от diagon Посмотреть сообщение
Ну так это русские символы.
Не факт, что они вообще правильно считываются и поток на них не ломается, но можно попробовать изменить условие
C++
1
for (char ch; ifs >> ch && ch >= '0' && ch <= '9'; sum += ch, sum %= 9);
Изменил , но ничего не произошло

Добавлено через 6 минут
А если переделать так , чтобы текст вводить с клавиатуры ?
Joke+R
 Аватар для Joke+R
41 / 41 / 3
Регистрация: 18.11.2011
Сообщений: 112
03.06.2012, 15:57     Текст является десятичной записью числа, кратного 9 #36
попробуй тогда
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
 
int main()
{
    ifstream ifs("input.txt");
    char sum = 0;
    for (char ch; ifs >> ch && isdigit(ch); sum += ch, sum %= 9);
    if (!ifs && !sum) cout<< "false";
    else cout<<"true";
}
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 15:58     Текст является десятичной записью числа, кратного 9 #37
Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
 
int main()
{
    char str[256];
    cout << "Enter string: ";
    cin.getline(str,255);
    char sum = 0;int i=0;
    for (char ch;  ch=str[i], isdigit(ch); sum += ch, sum %= 9, i++);
    
    cout << (!str[i] && !sum ? "true" : "false" );
    return 0;
}
Takezo Kensai
2 / 2 / 0
Регистрация: 15.05.2012
Сообщений: 72
03.06.2012, 16:09  [ТС]     Текст является десятичной записью числа, кратного 9 #38
Joke+R, Вроде ничего не изменилось


Лжец, Он всегда выводит "false"
Joke+R
 Аватар для Joke+R
41 / 41 / 3
Регистрация: 18.11.2011
Сообщений: 112
03.06.2012, 16:13     Текст является десятичной записью числа, кратного 9 #39
попробуй так
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
#include <iostream.h>
#include <fstream.h>
#include <ctype.h>
 
int main()
{
    char arr[250];
    int i = 0;
    char end = 1;
    while (end)
{
cout<<"1 - add new\n0 - finish add";
cin>>end;
if (end) 
{
cout<<"Enter:";
cin>>arr[i++];
 
}
}
    char sum = 0;
    for (char ch; ch = arr[--i] && isdigit(ch); sum += ch, sum %= 9);
    if (!sum) cout<< "false";
    else cout<<"true";
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 16:14     Текст является десятичной записью числа, кратного 9
Еще ссылки по теме:

C++ Определить, является ли текст десятичной записью числа, кратного 5
C++ Проверить, является ли текст десятичной записью числа, кратного 5
C++ Определить, является ли текст десятичной записью числа, кратного 5

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

Или воспользуйтесь поиском по форуму:
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
03.06.2012, 16:14     Текст является десятичной записью числа, кратного 9 #40
Цитата Сообщение от Takezo Kensai Посмотреть сообщение
Он всегда выводит "false"
Не может быть такого. Какие значения вы вводите?
Yandex
Объявления
03.06.2012, 16:14     Текст является десятичной записью числа, кратного 9
Ответ Создать тему
Опции темы

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