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

C для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
pilot12
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 80
#1

Нежелательное округление дробных чисел - C (СИ)

15.09.2012, 00:53. Просмотров 1608. Ответов 17
Метки нет (Все метки)

Не пойму, почему когда компилирую, при вводе числа, например, "2112.12" вывод просто "2112" , без дробной части, в чем проблема?

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
main()
 
{
    char number [10];
    int i, proverka, num;
    printf("vvedite chislo: ");
    scanf("%s", number);
    proverka=0;
    for (i = 0; number[i] != EOF; ++i) 
    {
        if (number[i] >= '0' || number[i] <= '9')
        {
            proverka = 1;
        }
        else 
        { 
            proverka = 0; 
        }
    }
    if (proverka == 1)
    {
        num = atoi(number); // конвертируем строку в int
        printf("num = %d", num);
    }
    getch();
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2012, 00:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нежелательное округление дробных чисел (C (СИ)):

Генерация дробных случайных чисел от 0,1 до 0,9 - C (СИ)
Нужны дробные случайные числа от 0,1 до 0,9 Сваял на пробу прогу: #include &lt;stdio.h&gt; #include &lt;time.h&gt; main (){ float n; ...

Среднее арифметическое пяти дробных чисел - C (СИ)
Написать программу, которая вводит с клавиатуры 5 дробных чисел и вычисляет их среднее арифметическое. Рекомендуемый вид экрана во время...

Найти и вывести сумму всех дробных чисел в строке - C (СИ)
Найти и вывести сумму всех дробных чисел в строке. Размер строки 80. Вводится пользователь, но проблема в нахождении самих дробных чисел....

После ввода дробных чисел, данные не заносятся в переменные - C (СИ)
Пишу лабу для универа. Никогда не думал, что возникнут затыки на таком: После ввода целых чисел все нормально, считаются как надо. ...

Перевод char в int работает только для положительных, не дробных чисел - C (СИ)
{ int i, Chislo=0; if(!StrLen(str)) return 0; for(i=0;i&lt;StrLen(str);i++) Chislo=Chislo*10+(str-'0'); return Chislo; }...

Как исправить округление действительных чисел? - C (СИ)
// феномен действительных чисел.cpp: определяет точку входа для консольного приложения. /* Если мы вводим от 0.1 до 0.4 коп то мы чего...

17
Psilon
Master of Orion
Эксперт .NET
5935 / 4834 / 636
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
15.09.2012, 12:33 #16
-=ЮрА=-,
- это для строк пофик (потому что слешзеро в конце есть, а чтобы было если был скажем int массивчик), не надо такое сравнение, либо в условии окончания цикла можно было ставить
number[i - 1] != '\0'
не ну мозгов понять про выход за границы у меня хватает, я ж на шарпе программирую, там любой выход за границы - ошибка в лучшем случае рантайма, в худшем - компиляции. Так что это уже давно и прочно въелось)

Что касается функций: я только-только K&R начал читать, так что пока не в курсе даже ansi C, не то, что какого-нибудь C99
0
alkagolik
Заблокирован
16.09.2012, 15:46 #17
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
хотя думаю найдётся немало людей, которые обкакают и мой блог - ведь для многих я был есть и буду "тупым Юрой"
Так что решать использовать либо нет примеры из моего блога лежат целиком на плечах читателя)

Не по теме:

встречалось даже "идиот"(c). Твой блог мне однажды помог. Искал алгоритм вычисления детерминанта и тупо скопирастил ствои функции (детерминант и минор матрицы). Для СЛАУ <= 10 строк потянет.

0
Psilon
Master of Orion
Эксперт .NET
5935 / 4834 / 636
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
16.09.2012, 18:51 #18
alkagolik,

Не по теме:

странно, что так мало, у меня на дельфи функция считала минор до матрицы 1024х1024, больше просто не пробовал И считал довольно шустро - минут 10

0
16.09.2012, 18:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2012, 18:51
Привет! Вот еще темы с ответами:

Вывод дробных корней квадратного уравнения - C (СИ)
Не выводит дробные числа x1 , x2. На примере этого уравнения 3x^2+7x+2=0 . C целыми числами работает нормально . Подскажите пожалуйста в...

Округление double - C (СИ)
Помогите, пожалуйста! Как округлить число типа double до сотых? Функциями из &lt;math.h&gt; пользоваться нельзя.

Округление до десятков - C (СИ)
с клавиатуры вводится число (от 0 до 999), а выводится число, округленное до ближайшего десятка (448 -&gt; 450) Опять же есть варианты...

Округление при делении - C (СИ)
Здрасте, толи я не знаю чего-то, толи косяк компилятора (gcc): double d=9/5; после компиляции d== 1.0 в чем проблема? :umnik:


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

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

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