Аватар для HumanityShitnes
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 6

Распознавание содержимого переменной (символы или цифры)

02.07.2012, 16:25. Показов 9485. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
27
28
//Программа для определения значения больше или меньше нуля
#include<iostream>
using namespace std;
#include<locale.h>
#include<conio.h>
 
int main ()
{
    //Pуссифицируем консоль
    setlocale (LC_ALL, "russian");
 
    //Обьявляем переменные
    int nData;
 
    //Получаем значение переменной
    cout <<"Введите любое число: ";
    cin >> nData;
    cout << nData;
 
    //Сравниваем значение переменной с нулем
 if(nData == 0)
 cout <<"\nЗначение равно нулю";
 if(nData > 0)
 cout <<"\nЗначение больше нуля";
 if (nData < 0)
 cout <<"\nЗначение меньше нуля";
_getch();
return 0;
Есть такой вот код, при вводе символьного значения выдает решение по условиям, нужно научить прогу распознавать символы и цифры где нибудь перед сравнением с нулем)
если код кривоват, подскажите где, изучаю сам, только по справочным пособиям без всяких уроков)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.07.2012, 16:25
Ответы с готовыми решениями:

Заменить символами # символы, стоящие в строках или столбцах, где имеются цифры
Вот задача: Задана символьная матрица Y(K, L), K&lt;=7, L&lt;=9, соcтаящая из латинских букв и цифр. Заменить символами # символы, стоящие в...

[MASM] Вывод значения переменной (или содержимого регистра) на экран
Здравствуйте! По очень простому вопросу никак не могу найти ответ. Например пара фрагментов: mov al, 5 add al, 3 mov ah, 9h ...

Присвоить переменной V символы: first, second или third – в зависимости от первого элемента заданного списка
доброго времени суток! и снова задачи.. Дан список символов. Описать фрагмент программы, в котором переменной V присваиваются символы:...

36
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
04.07.2012, 04:17
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Вот. Ищите ещё баги
Если пустая строка?
0
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
04.07.2012, 04:25
Вот. Ищите дальше, тест-лид))))
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// zadacha.cpp: главный файл проекта.
 
/*
Прграмма написана на Microsoft Visual Studio 2010, проект CLR.
Программа распознает минус и может принимать символы с точкой.
Также распознаются как символы русские буквы.
Я писал переменные буквами( мне так удобнее ).Расшифровка для лучшего поняти я ниже:
a - счетчик для цикла
b - мульти-переменная  -  сначала используется для хранения кодов цифр, после - дл хранения полученного числа
c - счетчик для введенных цифр
d - счетчик для введенных символ, специальных символов и всего прочего
z - счетчик для проверки на 0
*/
 
 
 
 
 
 
#include "stdafx.h" // главный добавляемый файл
#include <stdio.h>  // for printf()
#include <conio.h>  // for getch()
#include <string.h> // for strlen(), char()
#include <stdlib.h> // for atof()
 
#define maxline 1000 //константа на размер массива
 
using namespace System;// системная куча памяти для программы (вроде так)
 
void getline(char s[]) // функция для получения строки с клавиатуры
{
    int c,i; // обьявляем переменные
    for (i=0; (c=getchar()) != '\n';i++) // ставим цикл
        s[i]=c; // загоняем в ячейку массива символ
    s[i]='\0'; // присваиваем массиву признак конца строки, чтобы массив стал строкой
}
 
int main() // главная функция
{
    int a,b=0,c=0,d=0,z=0; // обьявляем и инициализируем переменные
    system("chcp 1251"); // пишем, чтобы выводило и ВВОДИЛО также русские буквы
    char str[maxline]; // обьявляем массив
    getline(str); // используем функцию
    for (a=0; a < strlen(str); a++) // обьявляем цикл
    {
        b=char(str[a]); // присваиваем переменной код символа в ячейке массива
    if (b >= 48 && b <= 57) // условие для цифр
        c++; // наращивваем счетчик
    else if((b >= 0 && b <= 44) || (b==47) || (b >= 58 && b <= 255) || (b >= -64 && b <= -1)) // условие для лишней хрени
        d++; //наращиваем счетчик
    if(str[0]=='-' && str[1]=='-') // проверка на минусы
        d++;
    }
    if(c!=0 && d==0) // проверка на правильность ввода
        printf("Молодец!Введено правильно!\n"); // вывод написанного левее
    else if(d!=0) // проверка номер 2
    {
        printf("Плохо!Введенная вами строка содержит недопустимые для этой задачи знаки"); // вывод написанного левее
        z=1; // присваиванее 1 переменной
    }
    b=atof(str); // преобразуем строку в число
    if(c==0 && d==0)
    {
        z++;
        printf("Вы ничего не ввели");
    }
    if(z==0) // проверка
    {
    if(b == 0) //проверочка на 0 номер 1
    printf("Значение равно нулю"); //вывод написанного левее
    if(b > 0) //проверочка на 0 номер 2
    printf("Значение больше нуля"); //вывод написанного левее
    if (b < 0) //проверочка на 0 номер 3
    printf("Значение меньше нуля"); //вывод написанного левее
    }
    getch(); //задержка экрана
}
0
19 / 19 / 6
Регистрация: 09.03.2012
Сообщений: 91
04.07.2012, 04:31
ну раз ты не выражения вводишь, то сделай ошибкой.
ий чтото я поздно пишу, забыл обновить страницу.
0
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
04.07.2012, 04:45
Тут я ещё одну ошибку нашёл - баг серьезный с большими числами.

Добавлено через 6 минут
Баг исправлен.Вот изучайте.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// zadacha.cpp: главный файл проекта.
 
/*
Прграмма написана на Microsoft Visual Studio 2010, проект CLR.
Программа распознает минус и может принимать символы с точкой.
Также распознаются как символы русские буквы.
Я писал переменные буквами( мне так удобнее ).Расшифровка для лучшего поняти я ниже:
a - счетчик для цикла
b - мульти-переменная  -  сначала используется для хранения кодов цифр, после - дл хранения полученного числа
c - счетчик для введенных цифр
d - счетчик для введенных символ, специальных символов и всего прочего
z - счетчик для проверки на 0
*/
 
 
 
 
 
 
#include "stdafx.h" // главный добавляемый файл
#include <stdio.h>  // for printf()
#include <conio.h>  // for getch()
#include <string.h> // for strlen(), char()
#include <stdlib.h> // for atof()
 
#define maxline 1000 //константа на размер массива
 
using namespace System;// системная куча памяти для программы (вроде так)
 
void getline(char s[]) // функция для получения строки с клавиатуры
{
    int c,i; // обьявляем переменные
    for (i=0; (c=getchar()) != '\n';i++) // ставим цикл
        s[i]=c; // загоняем в ячейку массива символ
    s[i]='\0'; // присваиваем массиву признак конца строки, чтобы массив стал строкой
}
 
int main() // главная функция
{
    int a,c=0,d=0,z=0; // обьявляем и инициализируем переменные
    double b=0;
    system("chcp 1251"); // пишем, чтобы выводило и ВВОДИЛО также русские буквы
    char str[maxline]; // обьявляем массив
    getline(str); // используем функцию
    for (a=0; a < strlen(str); a++) // обьявляем цикл
    {
        b=char(str[a]); // присваиваем переменной код символа в ячейке массива
    if (b >= 48 && b <= 57) // условие для цифр
        c++; // наращивваем счетчик
    else if((b >= 0 && b <= 44) || (b==47) || (b >= 58 && b <= 255) || (b >= -64 && b <= -1)) // условие для лишней хрени
        d++; //наращиваем счетчик
    if(str[0]=='-' && str[1]=='-') // проверка на минусы
        d++;
    }
    if(c!=0 && d==0) // проверка на правильность ввода
        printf("Молодец!Введено правильно!\n"); // вывод написанного левее
    else if(d!=0) // проверка номер 2
    {
        printf("Плохо!Введенная вами строка содержит недопустимые для этой задачи знаки"); // вывод написанного левее
        z=1; // присваиванее 1 переменной
    }
    
    b=atof(str); // преобразуем строку в число
    if(c==0 && d==0)
    {
        z++;
        printf("Вы ничего не ввели");
    }
    if(z==0) // проверка
    {
    if(b == 0) //проверочка на 0 номер 1
    printf("Значение равно нулю"); //вывод написанного левее
    if(b > 0) //проверочка на 0 номер 2
    printf("Значение больше нуля"); //вывод написанного левее
    if (b < 0) //проверочка на 0 номер 3
    printf("Значение меньше нуля"); //вывод написанного левее
    }
    getch(); //задержка экрана
}
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.07.2012, 06:35
ZaMaZaN4iK, проблема та же, что и в похожей предыдущей теме - статический размер массива. Я введу больше 1000 символов, и программа упадет.
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
04.07.2012, 12:25
такое то решение не пойдет?

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
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <string>
#include <sstream>
 
bool isInt(const std::string &str) {
    int i = 0;
    if (str[i] == '-')
        if (str.size() > 1)
            ++i;
        else
            return false;
    while (i < str.size()) {
        if (!std::isdigit(str[i]))
            return false;
        ++i;
    }
    return true;
}
 
int main() {
    std::string str;
    std::cin >> str;
    if (isInt(str)) {
        std::stringstream ss(str);
        int num;
        ss >> num;
        if (num > 0)
            std::cout << "pos";
        else if (num < 0)
            std::cout << "neg";
        else
            std::cout << "0";
    } else {
        std::cout << "input error.";
    }
 
    return 0;
}
1
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
04.07.2012, 14:30
Согласен. Размерность массива не регулируется вручную. Но, во-первых, для задачи можно подкорректировать величину массива.Во-вторых, задача несерьезная.Поэтому и такое решение пойдет.Но насчёт размера массива полностью с вами согласен.Пытался вводить размерность массива с клавы ДО обьявления массива - а он всё равно пишет, что не может создать массив с нулевой размерность. WTF?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.07.2012, 14:37
ZaMaZaN4iK, Читайте про динамическое выделение памяти.
0
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
04.07.2012, 22:59
понял.спасибо.

Добавлено через 16 минут
Вот сделал с динамическим выделением.Зацените
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// zadacha.cpp: главный файл проекта.
 
/*
Прграмма написана на Microsoft Visual Studio 2010, проект CLR.
Программа распознает минус и может принимать символы с точкой.
Также распознаются как символы русские буквы.
Я писал переменные буквами( мне так удобнее ).Расшифровка для лучшего поняти я ниже:
a - счетчик для цикла
b - мульти-переменная  -  сначала используется для хранения кодов цифр, после - дл хранения полученного числа
c - счетчик для введенных цифр
d - счетчик для введенных символ, специальных символов и всего прочего
z - счетчик для проверки на 0
*/
 
 
 
 
 
 
#include "stdafx.h" // главный добавляемый файл
#include <stdio.h>  // for printf()
#include <conio.h>  // for getch()
#include <string.h> // for strlen(), char()
#include <stdlib.h> // for atof()
#include <iostream>
 
 
 
 
using namespace System;// системная куча памяти для программы (вроде так)
 
int getline(char s[]) // функция для получения строки с клавиатуры
{
    int c,i; // обьявляем переменные
    for (i=0; (c=getchar()) != '\n';i++) // ставим цикл
        s[i]=c; // загоняем в ячейку массива символ
    s[i]='\0'; // присваиваем массиву признак конца строки, чтобы массив стал строкой
    i++;
    return(i);
}
 
 
 
int main() // главная функция
{
    int a,c=0,d=0,z=0; // обьявляем и инициализируем переменные
    double b=0;
    system("chcp 1251"); // пишем, чтобы выводило и ВВОДИЛО также русские буквы
    char *str = new char [1000]; // обьявляем массив
    getline(str); // используем функцию
    for (a=0; a < strlen(str); a++) // обьявляем цикл
    {
        b=char(str[a]); // присваиваем переменной код символа в ячейке массива
    if (b >= 48 && b <= 57) // условие для цифр
        c++; // наращивваем счетчик
    else if((b >= 0 && b <= 44) || (b==47) || (b >= 58 && b <= 255) || (b >= -64 && b <= -1)) // условие для лишней хрени
        d++; //наращиваем счетчик
    if(str[0]=='-' && str[1]=='-') // проверка на минусы
        d++;
    }
    if(c!=0 && d==0) // проверка на правильность ввода
        printf("Молодец!Введено правильно!\n"); // вывод написанного левее
    else if(d!=0) // проверка номер 2
    {
        printf("Плохо!Введенная вами строка содержит недопустимые для этой задачи знаки"); // вывод написанного левее
        z=1; // присваиванее 1 переменной
    }
    
    b=atof(str); // преобразуем строку в число
    if(c==0 && d==0)
    {
        z++;
        printf("Вы ничего не ввели");
    }
    if(z==0) // проверка
    {
    if(b == 0) //проверочка на 0 номер 1
    printf("Значение равно нулю"); //вывод написанного левее
    if(b > 0) //проверочка на 0 номер 2
    printf("Значение больше нуля"); //вывод написанного левее
    if (b < 0) //проверочка на 0 номер 3
    printf("Значение меньше нуля"); //вывод написанного левее
    }
    delete str;
    getch(); //задержка экрана
}
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.07.2012, 23:18
ZaMaZaN4iK, using namespace System то уберите. Это вообще из другой оперы и другого языка.
0
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
167 / 167 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
04.07.2012, 23:21
Хех, убрал. Но всё равно ввёл болбшое число - выкидывает ошибку(( Буду учить дальше)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
05.07.2012, 01:26
А как же вариации числа со степенью:
8d+5
8D-5
8e+5
8E+5
ZaMaZaN4iK, число +1 ведь тоже называется числом.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
05.07.2012, 02:46
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Вот сделал с динамическим выделением.Зацените
А разница? Всё равно только 1000. Идея в том, чтобы выделить памяти столько сколько нужно. Один из способов - использовать объект с автоматической регулировкой памяти, например, vector. Практически, это тот же динамический массив, но, при добавлении в него элементов, размер вектора автоматически увеличивается.

Добавлено через 1 час 4 минуты
Хотя бы так:
код
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "stdafx.h" // главный добавляемый файл
#include <stdio.h>  // for printf()
#include <conio.h>  // for getch()
#include <string.h> // for strlen(), char()
#include <stdlib.h> // for atof()
#include <iostream>
#include <vector>
 
 
int getline(vector<int>& s) // функция для получения строки с клавиатуры
{
    int c, i; // обьявляем переменные
    
    for (i=0; (c=getchar()) != '\n';i++) // ставим цикл
        s.push_back(c); // загоняем в ячейку массива символ
        i++;
    return(i); //где используется возвращаемое значение?
}
 
int main() // главная функция
{
    int a,c=0,d=0,z=0; // обьявляем и инициализируем переменные
    double b=0;
    system("chcp 1251"); // пишем, чтобы выводило и ВВОДИЛО также русские буквы
    
    vector<int> str;
    
    getline(str); // используем функцию
    
    for (a=0; a < str.size(); a++) // обьявляем цикл
    {
        b=str[a]; // присваиваем переменной код символа в ячейке массива
    if (b >= 48 && b <= 57) // условие для цифр
        c++; // наращивваем счетчик
    else if((b >= 0 && b <= 44) || (b==47) || (b >= 58 && b <= 255) || (b >= -64 && b <= -1)) // условие для лишней хрени
        d++; //наращиваем счетчик
    if(str[0]=='-' && str[1]=='-') // проверка на минусы
        d++;
    }
    if(c!=0 && d==0) // проверка на правильность ввода
        printf("Молодец!Введено правильно!\n"); // вывод написанного левее
    else if(d!=0) // проверка номер 2
    {
        printf("Плохо!Введенная вами строка содержит недопустимые для этой задачи знаки"); // вывод написанного левее
        z=1; // присваиванее 1 переменной
    }
    
    char *p = new char[str.size()];
    
    copy(str.begin(), str.end(), p);
    b=atof(p); // преобразуем строку в число
    if(c==0 && d==0)
    {
        z++;
        printf("Вы ничего не ввели");
    }
    if(z==0) // проверка
    {
    if(b == 0) //проверочка на 0 номер 1
    printf("Значение равно нулю"); //вывод написанного левее
    if(b > 0) //проверочка на 0 номер 2
    printf("Значение больше нуля"); //вывод написанного левее
    if (b < 0) //проверочка на 0 номер 3
    printf("Значение меньше нуля"); //вывод написанного левее
    }
    delete [] p;
    getch(); //задержка экрана
}
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.07.2012, 06:59
использовать объект с автоматической регулировкой памяти, например, vector
Ага. Использовать вектор, чтобы просто вводить в него символы. Строки отменили что-ли?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
05.07.2012, 10:23
Цитата Сообщение от soon Посмотреть сообщение
Ага. Использовать вектор, чтобы просто вводить в него символы. Строки отменили что-ли?
В чём, в данном случае, разница? Потом, в его коде с объявленна как int. Я же под его код предлагаю.

Добавлено через 18 минут
код
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h" // главный добавляемый файл
#include <stdio.h>  // for printf()
#include <conio.h>  // for getch()
#include <string.h> // for strlen(), char()
#include <stdlib.h> // for atof()
#include <iostream>
#include <string>
 
 
int getline(string& s) // функция для получения строки с клавиатуры
{
    char c, i; // обьявляем переменные
    
    for (i=0; (c=getchar()) != '\n';i++) // ставим цикл
        s = s + c; // загоняем в строку символ
        i++;
    return(i); //где используется возвращаемое значение?
}
 
int main() // главная функция
{
    int a,c=0,d=0,z=0; // обьявляем и инициализируем переменные
    double b=0;
    
    system("chcp 1251"); // пишем, чтобы выводило и ВВОДИЛО также русские буквы
    
    string str;
    
    getline(str); // используем функцию
    
    for (a=0; a < str.size(); a++) // обьявляем цикл
    {
        b=str[a]; // присваиваем переменной код символа в ячейке массива
    if (b >= 48 && b <= 57) // условие для цифр
        c++; // наращивваем счетчик
    else if((b >= 0 && b <= 44) || (b==47) || (b >= 58 && b <= 255) || (b >= -64 && b <= -1)) // условие для лишней хрени
        d++; //наращиваем счетчик
    if(str[0]=='-' && str[1]=='-') // проверка на минусы
        d++;
    }
    if(c!=0 && d==0) // проверка на правильность ввода
        printf("Молодец!Введено правильно!\n"); // вывод написанного левее
    else if(d!=0) // проверка номер 2
    {
        printf("Плохо!Введенная вами строка содержит недопустимые для этой задачи знаки"); // вывод написанного левее
        z=1; // присваиванее 1 переменной
    }
    
    b=atof(str.c_str()); // преобразуем строку в число
    
    if(c==0 && d==0)
    {
        z++;
        printf("Вы ничего не ввели");
    }
    if(z==0) // проверка
    {
    if(b == 0) //проверочка на 0 номер 1
    printf("Значение равно нулю"); //вывод написанного левее
    if(b > 0) //проверочка на 0 номер 2
    printf("Значение больше нуля"); //вывод написанного левее
    if (b < 0) //проверочка на 0 номер 3
    printf("Значение меньше нуля"); //вывод написанного левее
    }
    
    getch(); //задержка экрана
}


Добавлено через 1 час 33 минуты
код
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>  // for printf()
#include <conio.h>  // for getch()
#include <stdlib.h> // for atof()
#include <iostream>
#include <string>
using namespace std;
 
 
void getline(string& s) // функция для получения строки с клавиатуры
{
    char c, i; // обьявляем переменные
    
    for (i=0; (c=getchar()) != '\n';i++) // ставим цикл
        s.push_back(c); // загоняем в строку символ
}
    
int main() // главная функция
{
    setlocale(0, "");
    int c=0,d=0,z=0; // обьявляем и инициализируем переменные
    double b=0;
    
    string str;
    
    getline(str); // используем функцию
   
    for (int i=0; i < str.size(); i++) // обьявляем цикл
    {
        b=str[i]; // присваиваем переменной код символа в ячейке массива
    if ((b >= 48 && b <= 57) || (b == '-' && i == 0)) // условие для цифр и первого минуса
        c++; // наращивваем счетчик
    else d++; // наращивваем счетчик
        
    }
    if(c!=0 && d==0) // проверка на правильность ввода
        printf("Молодец!Введено правильно!\n"); // вывод написанного левее
    else if(d!=0) // проверка номер 2
    {
        printf("Плохо!Введенная вами строка содержит недопустимые для этой задачи знаки"); // вывод написанного левее
        z=1; // присваиванее 1 переменной
    }
    
    b=atof(str.c_str()); // преобразуем строку в число
    
    if(c==0 && d==0)
    {
        z++;
        printf("Вы ничего не ввели");
    }
    if(z==0) // проверка
    {
    if(b == 0) //проверочка на 0 номер 1
    printf("Значение равно нулю"); //вывод написанного левее
    if(b > 0) //проверочка на 0 номер 2
    printf("Значение больше нуля"); //вывод написанного левее
    if (b < 0) //проверочка на 0 номер 3
    printf("Значение меньше нуля"); //вывод написанного левее
    }
    
    getch(); //задержка экрана
}
1
 Аватар для HumanityShitnes
0 / 0 / 0
Регистрация: 02.07.2012
Сообщений: 6
05.07.2012, 11:49  [ТС]
ZaMaZaN4iK
C++
1
2
3
4
------ Построение начато: проект: morethan, Конфигурация: Release Win32 ------
  morethan.cpp
morethan.cpp(18): fatal error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Добавлено через 2 минуты
Добавлено через 1 час 33 минуты
код
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>  // for printf()
#include <conio.h>  // for getch()
#include <stdlib.h> // for atof()
#include <iostream>
#include <string>
using namespace std;
 
 
void getline(string& s) // функция для получения строки с клавиатуры
{
    char c, i; // обьявляем переменные
    
    for (i=0; (c=getchar()) != '\n';i++) // ставим цикл
        s.push_back(c); // загоняем в строку символ
}
    
int main() // главная функция
{
    setlocale(0, "");
    int c=0,d=0,z=0; // обьявляем и инициализируем переменные
    double b=0;
    
    string str;
    
    getline(str); // используем функцию
   
    for (int i=0; i < str.size(); i++) // обьявляем цикл
    {
        b=str[i]; // присваиваем переменной код символа в ячейке массива
    if ((b >= 48 && b <= 57) || (b == '-' && i == 0)) // условие для цифр и первого минуса
        c++; // наращивваем счетчик
    else d++; // наращивваем счетчик
        
    }
    if(c!=0 && d==0) // проверка на правильность ввода
        printf("Молодец!Введено правильно!\n"); // вывод написанного левее
    else if(d!=0) // проверка номер 2
    {
        printf("Плохо!Введенная вами строка содержит недопустимые для этой задачи знаки"); // вывод написанного левее
        z=1; // присваиванее 1 переменной
    }
    
    b=atof(str.c_str()); // преобразуем строку в число
    
    if(c==0 && d==0)
    {
        z++;
        printf("Вы ничего не ввели");
    }
    if(z==0) // проверка
    {
    if(b == 0) //проверочка на 0 номер 1
    printf("Значение равно нулю"); //вывод написанного левее
    if(b > 0) //проверочка на 0 номер 2
    printf("Значение больше нуля"); //вывод написанного левее
    if (b < 0) //проверочка на 0 номер 3
    printf("Значение меньше нуля"); //вывод написанного левее
    }
    
    getch(); //задержка экрана
}
[/QUOTE]

абсолютно удовлетворяющий код)
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
05.07.2012, 14:44
а зачем в этом коде си вообще использован?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2012, 14:44

Распознавание содержимого на Рабочем столе
Необходимо написать программу, которая в Виндовсе обнаруживает все окна панели, файлы, документы, папки рабочего стола, количество и их...

Распознавание цифры с картинки
Нужна помощь. Нужно распознать цифру на изображении BMP 1. Изображение загружаю я сам, а значит шрифт и расположение могу подогнать....

Распознавание контура нарисованной цифры
Здравствуйте, необходимо реализовать возможность рисование цифры и ее распознавание. Распознавание планирую делать через цепи Маркова,...

Вводить символы, сохранять цифры в массиве После заполнения массива распечатать все цифры, количество цифр и их сумму
Задать массив размера Н (известного заранее) Программа принимает от пользователя Буквы\Цифры Цифры сохраняются в массиве Когда массив...

Присвоение к переменной цифры для получения новой переменной
даны переменные: define (&quot;A1&quot;,&quot;aaaa&quot;); define (&quot;B1&quot;,&quot;ssss&quot;); define (&quot;A2&quot;,&quot;dddd&quot;); define (&quot;B2&quot;,&quot;ffff&quot;); мой код с ошибками ...


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

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

Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru