-8 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 22
1

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

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

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

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

 Комментарий модератора 
Официальным языком форума является русский язык.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2011, 07:21
Ответы с готовыми решениями:

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

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

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

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

7
277 / 172 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 07:42 2
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Эксперт С++
11894 / 7266 / 1721
Регистрация: 25.07.2009
Сообщений: 13,305
09.12.2011, 08:58 3
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
-8 / 3 / 0
Регистрация: 14.11.2011
Сообщений: 22
09.12.2011, 13:47  [ТС] 4
Ты не знаешь как написать то же самое на с++?
0
277 / 172 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 17:12 5
Цитата Сообщение от Abylaikhan Посмотреть сообщение
Ты не знаешь как написать то же самое на с++?
а чем вас не устраивает то что я выше предложил?
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
09.12.2011, 17:39 6
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
277 / 172 / 21
Регистрация: 10.07.2011
Сообщений: 441
09.12.2011, 17:45 7
Цитата Сообщение от go Посмотреть сообщение
C++
1
(int) ( ( (d - ( (int) d )) *10 ) )
отличная идея!.. я даже и не подумал об этом
#include <windows.h> немного лишний
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11894 / 7266 / 1721
Регистрация: 25.07.2009
Сообщений: 13,305
09.12.2011, 20:05 8
Цитата Сообщение от 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2011, 20:05
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru