【问题描述】编写一个程序,当用户输入一个小数(正值浮点数)后,将小数转化为最近的整数输出(四舍五入)。
【输入形式】用户在第一行输入一个小数
【输出形式】用户在下一行显示输出结果
【样例输入】3.47
【样例输出】3
【样例说明】与输入值3.47接近的整数为3和4,3.47比3.5小,舍掉小数部分,结果为3。
------------------------
个人代码:
#include <stdio.h> #include <stdlib.h> int main(){ float x; int y; scanf("%f",&x); if(x>0){ y = (int)x; if((x - y)<0.5) printf("%d\n",y); else printf("%d\n",y+1); } else printf("请输入正值浮点数\n"); system("pause"); return 0; }
标答:
#include <stdio.h> main() { float num; int rnum; scanf("%f", &num); rnum = num + 0.5; printf("%d\n", rnum); }
-------------------------
1、scanf("%f",&x);中若为%f则x必须为float型(若x为double型,则读进来的数为0)
2、若x为int型,y为float型,则“x = y;”语句执行后x为y截掉小数点后的数的整数值。
3、printf("%d\n",y);中若为%d则y必须为int型(若y为float/double型,则输出为0)
原文:http://www.cnblogs.com/alison-f/p/6442152.html