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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
LightAgrail
Сообщений: n/a
#1

Вывод трёх переменных - C++

24.11.2010, 19:15. Просмотров 1303. Ответов 3
Метки нет (Все метки)

Самое простое задание, которое можно себе представить, не получается решить. Подозреваю неправильную постановку задачи, но, всё-таки, может руки кривые совсем у меня.

Текст задания:
Введите три переменные r (тип const float), simbol (тип char), и flag (тип bool). Их значение определите с помощью оператора scanf. Выведите на экран значение переменных в строку, используя оператор printf, определив размер поля для каждой переменной 10, для типа double после запятой должно выводиться три числа.

Сразу, что бросается в глаза:
1) Переменной типа double просят вывести три числа после запятой, хотя в начале программы не объявляются переменные данного типа.
2) Переменной типа const float необходимо задавать значение через scanf. Насколько мне известно, константы нужно инициализировать сразу.
3) Переменной типа bool тоже значение необходимо задать при объявлении flag.

Программу необходимо компилировать через lcc. Текст программы получился такой, если напрямую следовать заданию, заменив double на float:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <conio.h>
#include <stdbool.h>
void main () {
    const float r;
    char simbol;
    bool flag;
    printf("Enter r, simbol, flag \n");
    scanf("%f %c %d",&r,&simbol,&flag);
    printf("%10.3f %10c %10d",r,simbol,flag);
    getch();
}
В результате ввода получаю вещественное число r с тремя знаками после запятой, а потом начинаются интересные и непонятные метаморфозы. Если ввести числовое значение переменной flag - не будет отображаться текстовая переменная, если ввести текстовое значение flag - отобразиться символ. Также, переменная flag принимает значение 1 при вводе 1, и значение 0 при любом другом (что вполне логично). Если написать символ двумя знаками, то отобразиться первый из них при любом значении flag.

Страшно в общем смотреть на это. Если следовать следующим предположениям:
1) Значение переменной r должно задаваться при объявлении, потому что const.
2) Значение переменной flag должно задаваться при объявлении, потому что bool.
то получаем:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <conio.h>
#include <stdbool.h>
void main () {
    const float r=3.5134;
    char simbol;
    bool flag=false;
    printf("Enter simbol \n");
    scanf("%c",&simbol);
    printf("%10.3f %10c %10d",r,simbol,flag);
    getch();
}
В таком виде программа прекрасно работает. Собственно, суть темы - правильны ли предположения о том, что инициализация const и bool производиться во время объявления переменных? Можно ли исходный код заставить работать корректно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 19:15     Вывод трёх переменных
Посмотрите здесь:

Перебор всех значений трёх булевых переменных - C++
Вобщем мне надо проверить функцию на тавтологию, для этого как я понимаю надо проверить чтобы конечная функция была всегда истинной при...

Составить программу обмена значениями трёх переменных - C++
Условия задачи такие: Составить программу обмена значениями трёх переменных величин a,b,c по след схеме: b присвоить значение c, a...

Создать функцию для расчёта максимального из трёх переменных - C++
Даны действительные числа x, y, z. Создать собственную функцию для расчёта максимального из трёх переменных max(a,b,c).

Найти значение функции A, которая зависит от трёх переменных - C++
Нужно создать программу для вычисления функции A, которая зависит от трёх переменных x, y, z. Ввод значения переменных сделать с...

Запрос ввода трёх целых чисел, и вывод суммы их половинок - C++
1) Программа просит ввести пользователя 3 целых числа и выводит сумму их половинок #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Вывод переменных - C++
Что с выводом координат x и y? #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { float x,y; int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 19:22     Вывод трёх переменных #2
Цитата Сообщение от LightAgrail Посмотреть сообщение
Значение переменной r должно задаваться при объявлении, потому что const.
Правильно.
Цитата Сообщение от LightAgrail Посмотреть сообщение
Значение переменной flag должно задаваться при объявлении, потому что boo
Не совсем. Можно читать переменную, например, в int, а потом преобразовывать в bool.
LightAgrail
Сообщений: n/a
24.11.2010, 19:43     Вывод трёх переменных #3
Спасибо за внимание, получился вот такой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <conio.h>
#include <stdbool.h>
void main () {
    const float r=3.5134;
    char simbol;
    int flag;
    printf("Enter simbol, flag \n");
    scanf("%c %d",&simbol,&flag);
    flag = (bool) flag;
    printf("%10.3f %10c %10d",r,simbol,flag);
    getch();
}
Всё прекрасно работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2010, 20:08     Вывод трёх переменных
Еще ссылки по теме:

Вывод значений переменных - C++
Задача Есть в текстовый файл с таким содержанием ( например ): asd123 = 111 12dsd2 = 222 324asd = 333 ds7sd = 444; 1adf = 555; ...

Вывод переменных в файл - C++
Здравствуйте. Есть переменная типа Vector. Выглядит она при выводе у меня вот так: . Ну и значения постоянно меняются. Вывожу я её в файл...

Ввод и вывод текстовых переменных - C++
18. Введите свою фамилию , имя , отчество как одно текстовое Данное . Выведите на экран сначала имя , затем отчество , затем фамилию.

Вывод значения двух переменных - C++
есть к примеру : шаблон функции (параметры) { что то делаеться и return двух переменных} вызов : cout&lt;&lt;шаблон...

Случайный вывод значений переменных - C++
Доброй ночи, мне тут подруга дала задачку, написать программу-гадалку. Ну мол, вводишь вопрос, а она выдает &quot;Да&quot; или &quot;Нет&quot;. Проблема в...

Вывод окна контроля переменных - C++
Где в MS VC 2010 express найти окно контроля переменных ? PS еще мне интересно... вот например допустим тебе лень вспоминать как ты...


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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 20:08     Вывод трёх переменных #4
интересно, как работает с
Цитата Сообщение от LightAgrail Посмотреть сообщение
const float r
Добавлено через 46 секунд
а
вы вообще не читаете его
Yandex
Объявления
24.11.2010, 20:08     Вывод трёх переменных
Ответ Создать тему
Опции темы

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