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

При вводе в переменную через scanf число 0.5 записывается как 0 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод Ньютона для нелинейных систем. Нужно найти ошибку http://www.cyberforum.ru/cpp-beginners/thread1048701.html
Здравствуйте! Задача заключается в решении системы нелинейных уравнений методом Ньютона. Система 2x^3 - y^2 -1=0;xy^3-y-4=0, начальное приближение x0=1,y0=1 Код программы: #include <iostream> #include <math.h> using namespace std;
C++ Подсчитать сумму нечетных отрицательных элементов массива между первым и вторым нулевыми элементами Подсчитать сумму нечетных отрицательных элементов массива между первым и вторым нулевыми элементами. http://www.cyberforum.ru/cpp-beginners/thread1048689.html
Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами C++
Дан одномерный массив, состоящий из N вещественных элементов. Найти произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Выведите искомое произведение с 3 знаками после десятичной точки или 0, если между максимальным и минимальным по модулю элементом нет других элементов. Напишите код с++
C++ Реализация алгоритма Дейкстры
Кто может подсказать (или указать где найти) код алгоритма Дейкстры на С++?
C++ Вычислить сумму ряда через for http://www.cyberforum.ru/cpp-beginners/thread1048661.html
Вычислить сумму ряда, указанного в варианте задания для любого значения N, введенного с клавиатуры.Через for
C++ Реккурентная формула Помогите пожалуйста с составлением реккурентной формулы подробнее

Показать сообщение отдельно
ASCII
 Аватар для ASCII
82 / 54 / 8
Регистрация: 15.12.2013
Сообщений: 369
Завершенные тесты: 2
19.12.2013, 19:08     При вводе в переменную через scanf число 0.5 записывается как 0
Всем привет, столкнулся с такой проблемой:
В универе надо простенькую задачку написать на С...
Ввожу в х число 0.5, а в х в итоге лежит 0, почему? Ведь х имеет тип float.

Задача такая:

если х <= 0, выводим 0
если 0 < х <= 1, выводим, то что ввели в х
иначе выводим x^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
27
28
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
 
int main() {
    
    float x;
 
    setlocale(LC_ALL, "Russian");
 
    printf("Введите х: ");
    while(!scanf("%f", &x));
 
 
    if(x <= 0)
        printf("x = %f", 0);
 
    if(x > 0 && x <= 1)
        printf("x = %f", x);
 
    if(x > 1)
        printf("x = %f", x * x);
 
 
    system("pause >> void");
    return 0;
}
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru