Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
#1

В результате ввода переменной int присваивается символ - C++

24.03.2013, 11:30. Просмотров 546. Ответов 7
Метки нет (Все метки)

Создайте структуру с именем time. Три ее поля, имеющие тип int, будут называться hours, minutes и seconds. Напишите программу, которая просит пользователя ввести время в формате часы, минуты, секунды. Можно запрашивать на ввод как три значения сразу, так и выводить для каждой величины отдельное приглашение. Программа должна хранить время в структурной переменной типа time и выводить количество секунд в веденном времени, определяемое по формуле:

long totalsecs = t1.hours * 3600 + t1.minutes * 60 + t1.seconds;

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//9.cpp
#include <iostream>
#include <conio.h>
using namespace std;
 
struct time
{
     int hours;
     int minutes;
     int seconds;
};
 
int main()
{
    time Time;
    Time.hours = -2;
    Time.minutes = -2;
    Time.seconds = -2;
    unsigned long totalsecs;
    char dir = 'a';
    while(Time.hours < 0 || Time.hours > 24)
    {
        cout << "Enter the number of hours: ";
        cin >> Time.hours;
        if(Time.hours < 0 || Time.hours > 24)
        {
            cout << "Wrong Time!";
            do
            {
                cout << "\nContinue?(y/n)";
                dir = getche();
            }
            while(dir != 'y' && dir != 'n');
            if(dir == 'y')
            {
                cout << endl;
                continue;
            }
            else
            {
                cout << "\nExit..\n";
                system("pause");
                exit(0);
            }
        }
    };
 
    while(Time.minutes < 0 || Time.minutes >= 60)
    {
        cout << "Enter the number of minutes: ";
        cin >> Time.minutes;
        if(Time.minutes < 0 || Time.minutes >= 60)
        {
            cout << "Wrong time!";
            do
            {
                cout << "\nContinue?(y/n)";
                dir = getche();
            }while(dir != 'y' && dir != 'n');
            if(dir == 'y')
            {
                cout << endl;
                continue;
            }
            if(dir == 'n')
            {
                cout << "\nExit...\n";
                system("pause");
                exit(0);
            }
        }
    };
 
    while(Time.seconds < 0 || Time.seconds >= 60)
    {
        cout << "Enter the number of seconds: ";
        cin >> Time.seconds;
        if(Time.seconds < 0 || Time.seconds >= 60)
        {
            cout << "Wrong time!";
            do
            {
                cout << "\nContinue?(y/n)";
                dir = getche();
            }
            while(dir != 'y' && dir != 'n');
            if(dir == 'y')
            {
                cout << endl;
                continue;
            }
            else 
            {
                cout << "\nExit...\n";
                system("pause");
                exit(0);
            }
        }
    };
            
    totalsecs = Time.hours * 3600 + Time.minutes * 60 + Time.seconds;
    cout << "Totalsecs: " << totalsecs << endl;
 
    system("pause");
    return 0;
}
Я немного отхожу от условия задачи и пытаюсь усложнить, т.е. предусмотреть случаи, когда будет введены числа отрицательные или не соответствующие полям, к примеру (hours > 24 || hours < 0), но не могу ничего поделать, если вместо цифры вводится символ.
Знаю, что можно через getche считывать каждый символ, но на мой взгляд, это очень уныло и нерационально...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 11:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В результате ввода переменной int присваивается символ (C++):

Не присваивается значение переменной - C++
Привет всем форумчанам! :) Собственно само задание в прикрепленных изображениях. Независимо от того, какое бы я значение ни ввел,...

Не корректно присваивается последняя цифра числа для переменной - C++
Код наподобие этого: #include &lt;iostream&gt; using namespace std; int main() { double integer; int temp, last = 0;

Правильное объявление переменной с точки зрения стиля [int *a vs int* a] - C++
И всё таки, как корректней объявлять переменные? 1. int* a, int&amp; a, int** a или 2. int *a, int &amp;a, int **a ?

Ошибка линкера: ссылка на неразрешенный внешний символ "public: int __thiscall stack<int>::pop(void)" - C++
Всем привет! Возникает ошибка: error LNK2019: ссылка на неразрешенный внешний символ &quot;public: int __thiscall stack&lt;int&gt;::pop(void)&quot;...

Присвоить переменной char m значиние переменной int i.. - C++
Как присвоить переменной char m значиние переменной int i таким образом ? int main() { char m; int i = 5; m = i; # ( что бы...

Почему переменной присваивается произвольное значение("мусор")? - C++
Мой черновой вариант кода. Он очень черновой так что многое не суть важно, но переменной х я присваиваю значение 0. Если после приглашения...

7
Игорь с++
437 / 460 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
24.03.2013, 11:39 #2
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 <cstdlib>
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int a;
    
    cin>>a;
    
    if(a==CHAR(a)){
          cout<<"Ok\n";
          }
          
else {
     
     cout<<"Error\n";
     
     }
    
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
24.03.2013, 11:42  [ТС] #3
А можно немного пояснить?
Половину операций не понял, только начинаю изучать C++
0
Игорь с++
437 / 460 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
24.03.2013, 11:44 #4
iNsomNia7, что именно не понятно ?
0
iNsomNia7
2 / 2 / 0
Регистрация: 19.11.2012
Сообщений: 32
24.03.2013, 11:50  [ТС] #5
Цитата Сообщение от Игорь с++ Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(int argc, char *argv[])
{
    int a;
    
    cin>>a;
    
    if(a==CHAR(a)){
          cout<<"Ok\n";
          }
          
else {
     
     cout<<"Error\n";
     
     }
Просто не имею даже малейшего понятия о том, что написано в скобках main, да и дальнейшие действия тоже не очень понимаю(
0
Игорь с++
437 / 460 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
24.03.2013, 11:55 #6
C++
1
2
3
4
5
6
7
8
9
10
11
cin>>a;//ввод данных
    
    if(a==CHAR(a)){//сравнивание данных с символами , if - оператор если , 
          cout<<"Ok\n";// то что то делаем
          }
          
else {// else - иначе если условие не выполнилось 
     
     cout<<"Error\n";//выводим данную запись
     
     }
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
24.03.2013, 16:35 #7
Цитата Сообщение от iNsomNia7 Посмотреть сообщение
Просто не имею даже малейшего понятия о том, что написано в скобках main
Можете удалить параметры.
0
Banddk
37 / 37 / 1
Регистрация: 08.12.2012
Сообщений: 157
Записей в блоге: 1
24.03.2013, 16:53 #8
C++
1
2
3
4
5
int a;
    cin>>a;
    if(cin.fail()){
        cout<<"не число";
    }
вот проверка является ли это числом.
0
24.03.2013, 16:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 16:53
Привет! Вот еще темы с ответами:

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main - C++
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt;...

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Перевести символ из символьной матрицы в int - C++
здравствуйте. есть двумерный массив символов: int n=0; cout &lt;&lt; &quot;enter n &quot;&lt;&lt;endl; cin &gt;&gt;n; char ar; первый вопрос :...

Преобразование двоичного массива int в символ - C++
Здравствуйте. У меня вопрос. Как преобразовать числовой массив, в котором, к примеру, 8 элементов, в символ? В массиве только нули и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru