Мне нужно подсчитать цифры из числа с плавающей точкой и сохранить номер. Я могу использовать scanf для% f или% c, но не% s, и я могу использовать getchar(). Я могу использовать getchar, но плохо потерял номерподсчет чисел с плавающей точкой (hw) C
0
A
ответ
2
Почему вы потеряете номер с getchar
?
- прочитанной символы с GetChar, пока вы нажмете пробел/ввод/конец ввода
- Соберите их все в одну строку
- Используйте
strtod
, чтобы убедиться, что это действительное значение с плавающей точкой - Count цифр в строка - либо до, либо после точки, что вам нужно.
Если вы ограничены только getchar
:
- Читать обугливает один на один с
getchar
- Держите состояние, где вы находитесь в количестве: до того десятичной точки, в десятичной точки, или после
- Продолжайте считать цифры до тех пор, пока это допустимое число с плавающей запятой (т.е. 1 или более цифр, а затем необязательно десятичная точка с 1 или более цифрами после нее)
- Соберите цифры int o число с плавающей запятой путем сдвига мощности 10 (т.е. до десятичной точки умножить на 10,0 и добавить новое число, после десятичной точки делить на растущую мощность 10 и добавить).
1
Как я вижу, вы получили свой ответ, но это тоже работает для вас?
#include <stdio.h>
int main()
{
char *str = new char[30];
float flt;
int count = 0;
scanf("%f", &flt);
printf("number you entered is: %f\n", flt);
sprintf(str, "%f", flt);
for(;str[count] != '\0'; count++);
printf("%f have %d digits", flt, count-1);
return 0;
}
Смежные вопросы
- 1. Изучение чисел с плавающей точкой
- 2. произведение чисел с плавающей точкой
- 3. Проверка чисел чисел с плавающей точкой
- 4. Странный результат операции с плавающей точкой чисел
- 5. Округление чисел с плавающей точкой в словаре
- 6. печати очень больших чисел с плавающей точкой
- 7. Сравнение чисел с плавающей точкой к нулю
- 8. Сравнение чисел с плавающей точкой в Баш
- 9. представление чисел с плавающей точкой в Swift
- 10. Округление чисел с плавающей точкой bash
- 11. Запись чисел с плавающей точкой в файл
- 12. питон форматированием чисел с плавающей точкой
- 13. Сортировка массива чисел с плавающей точкой точечных
- 14. Сравнение чисел с плавающей точкой в Java
- 15. Отдел чисел с плавающей точкой в JavaScript
- 16. редактировать поля для чисел с плавающей точкой
- 17. Сравнение чисел с плавающей точкой в D
- 18. Форматирование чисел с плавающей точкой в Highcharts
- 19. Печать чисел с плавающей точкой в Haskell
- 20. локализация чисел с плавающей точкой gawk
- 21. безопасные значения целых чисел с плавающей точкой с двойным типом данных IEEE 754 с плавающей точкой
- 22. C- с плавающей точкой точность
- 23. C++ с плавающей точкой точность
- 24. C - округление с плавающей точкой
- 25. Точка с плавающей точкой C#
- 26. Сравнение чисел с плавающей точкой в C для модульного тестирования
- 27. Неожиданное поведение чисел с плавающей точкой в C
- 28. пузырьковой сортировки чисел с плавающей точкой в C
- 29. С плавающей точкой
- 30. регулярное выражение для нахождения десятичных чисел/чисел с плавающей точкой?
извините, если я не был чист, я не могу использовать строки. я могу сохранить только символ (только по одному) или число (ограниченное использованием только scanf и getchar). –
обновил мой ответ HTH. так как это вопрос HW, чтобы получить дополнительную помощь, вы действительно должны опубликовать собственный код и обратите внимание на то, что у вас есть проблема с –
. Чтобы разобрать 0.123, лучше прочитать часть «123» как целое число и разделите его на 1000 за один шаг. Поскольку ни один из 0,1, 0,02 или 0,003 не представлен как поплавок IEEE 754, ваш метод накапливает больше ошибок округления, чем это необходимо. –