任务和代码:
/*
*Copyright (c)2015 CSDN学院
*All rights reserved
*文件名字:main.c
*作者:zzhou
*完成日期:2015年10月19日
*版本号:V1.0
*
*问题描述:从键盘上输入一个浮点数(小数点后有三位数),然后分别输出该数的整数部分和小数部分
*程序分析:1、输入一个浮点数 2、使用强制类型转换 3、把这个三位数乘以1000,再强制转换成整数,最后对1000取余数
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
float num ;
int a , b ;
printf("请输入一个三位小数\n");
scanf("%f",&num);//输入一个浮点数
a = (int)num;//强制转换为整型数字
b =(int) (num * 1000) % 1000;//取余运算的两侧必须为整型,所以左边需要做强制类型转换
printf("%d %d\n",a,b);
return 0;
}
运行结果:
知识点总结:
本项目考察的知识为强制数据类型转换,以及运算符号在取数字各个位数数字的常用方法
心得:
如果把 b =(int) (num * 1000) % 1000改为b =(int) num * 1000 % 1000,所得结果与想象中
不一样,问题在于浮点数强制转换为整型时,增加后面的精度,导致结果不准;