【发布时间】:2017-11-17 06:22:56
【问题描述】:
我正在学习 C。我们使用 scanf 和 printf 输入和输出数据。
我们的课中有一个问题:反转浮点数。
我的编程技巧很好,我可以轻松做到这一点。
例如,我的一个想法是将float 数字转换为int 10 次方,然后将其反转并再次转换为float。还有很多其他的想法。
但我们的问题有一个限制。使用scanf 功能来反转号码。
我请我的老师给我一个代码。他给出了以下代码。我很抱歉,因为我没有清楚地理解代码。此代码为 12.33 提供 12 和 33,但此代码不适用于 12.00001,因为我们得到 12 和 1。当我们得到这个数字时,我们将它们反转并打印出来。我的老师问我解决这个问题的方法,但我找不到方法。没有必要存在一种方式,但有可能帮助我吗?
我的老师代码:
int main(){
int a,b;
scanf("%d.%d", &a, &b);
printf("a = %d, b = %d", a, b);
}
谢谢。
【问题讨论】:
-
当你使用
scanf时,用它扫描成string,然后你使用循环向后打印。 -
我不认为“使用 scanf()”意味着“仅此而已”。我无法想象其他机制,如循环字符数组被排除在外。
-
所以我必须获取数字字符串并反转该字符数组。没有特殊的代码可以自动为我执行此操作吗? (scanf() 中的特殊代码)
-
“以相反的顺序打印用户的浮动输入嘿,这个链接可能会帮助你”我检查它。它不相关。
-
请让你的老师给你真正的作业,而不是如果你在这头猪上安装翅膀会飞的作业。我会冒险猜测“没有人”使用 scanf 来反转 浮点数,因此您不会在网上找到很多这样的例子。看来这位老师在C语言或运行时发现了一个有趣的小花絮,想炫耀一下。
标签: c