С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/137: Рейтинг темы: голосов - 137, средняя оценка - 4.88
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 22

Вывести первую цифру после десятичной точки.

09.12.2011, 07:21. Показов 26458. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. При решении этой задачи нельзя пользоваться условной инструкцией и циклом.
 Комментарий модератора 
Создавайте темы с осмысленными и понятными названиями - это серьезно повышает шансы, что на ваш вопрос ответят.

 Комментарий модератора 
Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.

 Комментарий модератора 
Официальным языком форума является русский язык.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2011, 07:21
Ответы с готовыми решениями:

Выведите первую цифру числа после десятичной точки
Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. Пример Входные данные: 14.85 ...

Вывести в выходной файл округленное до n знаков после десятичной точки число E
Выведите в выходной файл округленное до n знаков после десятичной точки число E. Число Е, округленное до 25 знаков после десятичной точки,...

В заданной строке найти первую цифру и вывести её
Доброго времени суток.Помогите решить задачку: в заданной строке найти первую цифру и вывести её.

7
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 07:42
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using std::cout;
 
#include <stdio.h>
 
int main() {
 
    float a = 23.41;
    float b;
    char c[10];
 
    b = a - int(a);
 
    sprintf(c, "%f", b);
    cout << c[2];
    return 0;
}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.12.2011, 08:58
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <math.h>
 
int main(void){
    double n;
    
    while ( printf("Number: ") && scanf("%lf", &n) == 1 && n > 0.0 )
        printf("First digit after point: %d\n", (int)((n - floor(n)) * 10.0));
    
    return 0;
}
1
3 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 22
09.12.2011, 13:47  [ТС]
Ты не знаешь как написать то же самое на с++?
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 17:12
Цитата Сообщение от Abylaikhan Посмотреть сообщение
Ты не знаешь как написать то же самое на с++?
а чем вас не устраивает то что я выше предложил?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
09.12.2011, 17:39
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    double d;
 
    cout << "Enter d = ";
    cin >> d;
 
    cout << (int) ( ( (d - ( (int) d )) *10 ) )<<endl;
 
    system ("pause");
    return 0;
}
2
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 17:45
Цитата Сообщение от go Посмотреть сообщение
C++
1
(int) ( ( (d - ( (int) d )) *10 ) )
отличная идея!.. я даже и не подумал об этом
#include <windows.h> немного лишний
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.12.2011, 20:05
Цитата Сообщение от greeezz Посмотреть сообщение
отличная идея!..
Если не пробовать ввести что-то вроде 9999999999.1
Правильнее всё-таки
C
1
double_val - floor(double_val)
Добавлено через 23 минуты
Цитата Сообщение от greeezz Посмотреть сообщение
а чем вас не устраивает то что я выше предложил?
Кстати, тоже можно проще сделать (ну, если не заморачиваться, что могут ввести не число...)
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <string.h>
#include <ctype.h>
    
int main(void){
    char buf[BUFSIZ], * p;
    
    while ( printf("Number: ") && fgets(buf, BUFSIZ, stdin) && isdigit(*buf) )
        printf("First digit after point: %c\n", ( ( p = strchr(buf, '.') ) && ( isdigit(*(++p)) ) ) ? *p : '0');
    
    return 0;
}
Добавлено через 9 минут
Цитата Сообщение от easybudda Посмотреть сообщение
если не заморачиваться, что могут ввести не число
Быдлокодерский патч
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
#include <ctype.h>
    
int main(void){
    double d;
    char buf[BUFSIZ], * p;
    
    while ( printf("Number: ") && scanf("%lf", &d) == 1 && d > 0.0 && sprintf(buf, "%f", d) )
        printf("First digit after point: %c\n", ( ( p = strchr(buf, '.') ) && ( isdigit(*(++p)) ) ) ? *p : '0');
    
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2011, 20:05
Помогаю со студенческими работами здесь

Определить и вывести первую и последнюю цифру числа
Не знаю, как сделать, чтобы программа одновременно находила первое и последнее число #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Округлить число до 25 знаков после десятичной точки
Есть простая задача: вот я ее решаю таким способом, т.к в задании написано округлить #include &lt;fstream&gt; #include...

Округление числа до n знаков после десятичной точки
Решил задачу для новичков по C++. Задача совсем для зелёных новичков, кто только-только начал изучать C++, и у меня есть ощущение, что её...

Вывести первую цифру и сумму цифр натурального числа
Задано натуральные числа от 10 до N. Для натурального числа найти первую цифру и сумму его цифр. Добавлено через 1 час 57 минут ...

Вычислить функцию с точностью 6 знаков после десятичной точки
)Вычислить функцию f(x,a)= при x=0.4, 0.6,..., 1.2 и a=2, 3, 4, 5 с точностью 6 знаков после десятичной точки.


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru