0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 23
1

Написать программу, которая определяет выполнено ли следующее условие: текст является правильной записью целого числа

05.12.2019, 00:14. Показов 1204. Ответов 5

Текст задан последовательностью литер, за которыми идет '.' .
Что-то сообразить не могу, где ошибка.

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
26
#include "pch.h"
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "");
 
    int k = 0, s = 0;
    char x;
    cout << "Введите текст для проверки: ";
    cin >> x;
    if (x == '.') cout << "В тексте нет символов кроме '.'." << endl;
    else if (x == '0') cout << "В текcте записано не целое число." << endl;
    else
    {
        while (x = !".");
        {
            k++;
            if ((x >= '0') && (x <= '9')) s++;
            cin >> x;
        }
        if (k == s) cout << "Текст является правильной записью целого числа" << endl;
        else cout << "В текcте записано не целое число." << endl;
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2019, 00:14
Ответы с готовыми решениями:

Дан текст, заканчивающийся точкой. Является ли этот текст правильной записью целого числа (возможно, со знаком)
Дан текст, заканчивающийся точкой. Является ли этот текст правильной записью целого числа...

Является ли строка правильной записью целого десятичного числа
2) Ввести строку с клавиатуры. Определить, является ли она правильной записью целого десятичного...

Определить, является ли заданная строка правильной записью целого числа
Привет, не могу понять, как написать программу. (Определить, является ли заданная строка правильной...

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

5
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
05.12.2019, 01:15 2
Цитата Сообщение от Krya_Krya Посмотреть сообщение
char x;
    cout << "Введите текст для проверки: ";
    cin >> x;
так Вы сможете ввести только один символ

уберите точку с запятой
while (x = !".");

строка 21 повторный ввод

если без проверки на лидирующие нули, делал бы как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
int main()
{
    int k=0; 
    string s;
    cout << "String:\n";
    getline(cin, s);
    
    if (s[0]!='-' && !isdigit(s[0])) {k=1;cout << "NO\n";}
    else
    for (size_t i=1; i<s.size()-1; i++)   
        if (!isdigit(s[i])) {k=1;cout << "NO\n";break;}    
        
    if (!k) cout << "YES\n";
    
system("pause");
return 0;
}
уважаемые форумчане, подскажите запись с плюсом
+1234567
является правильной записью целого числа ?
0
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
05.12.2019, 01:32 3
Цитата Сообщение от Yetty Посмотреть сообщение
уважаемые форумчане, подскажите запись с плюсом
+1234567
является правильной записью целого числа ?
Да.
1
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
05.12.2019, 01:54 4
Цитата Сообщение от L0M Посмотреть сообщение
Да.
тогда в строку 13 нужно добавить условие:
C++
1
if (s[0]!='+' && s[0]!='-' && !isdigit(s[0])) {k=1;cout << "NO\n";}
0
0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 23
05.12.2019, 09:58  [ТС] 5

Yetty
, по условию задачи нельзя использовать массивы

Добавлено через 49 минут
Цитата Сообщение от Yetty Посмотреть сообщение
так Вы сможете ввести только один символ

уберите точку с запятой
while (x = !".");

строка 21 повторный ввод

если без проверки на лидирующие нули, делал бы как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
 
int main()
{
    int k=0; 
    string s;
    cout << "String:\n";
    getline(cin, s);
    
    if (s[0]!='-' && !isdigit(s[0])) {k=1;cout << "NO\n";}
    else
    for (size_t i=1; i<s.size()-1; i++)   
        if (!isdigit(s[i])) {k=1;cout << "NO\n";break;}    
        
    if (!k) cout << "YES\n";
    
system("pause");
return 0;
}
уважаемые форумчане, подскажите запись с плюсом
+1234567
является правильной записью целого числа ?
По условию задачи нельзя использовать массивы :(
0
Мозгоправ
1737 / 1031 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
05.12.2019, 13:25 6
Цитата Сообщение от Krya_Krya Посмотреть сообщение
По условию задачи нельзя использовать массивы
Посмотрите Определить, является ли заданная строка правильной записью целого числа
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2019, 13:25
Помогаю со студенческими работами здесь

Определить, является ли введенный текст записью целого числа или записью вещественного числа
Определить является ли введенный текст записью целого числа или записью вещественного числа.

Определить, является ли введенная строка правильной записью целого шестнадцатеричного числа без знака
Помогите с задачами. 1)Определить, является ли введенная строка правильной записью целого...

Определить, является ли введённая строка правильной записью целого десятичного числа без знака
Определить, является ли введённая строка правильной записью целого десятичного числа без знака - С++

Дан текст. Определить, является ли он правильной десятичной записью вещественного числа
Вот можете проверить пожалуйста #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru