[求助] 谁能教教我怎么把一个浮点数的小数和整数换个位置输出
提示用户输入一个浮点数,分别输出该数字的整数部分和小数部分分别是多少;然后将该数字颠倒过来后,以原来的精度输出例如:
用户输入1234.56,则输出
整数部分为1234,小数部分为56
颠倒数为 56.12
还有帮我看看这个程序:
#include "stdio.h"
main()
{
int a ;
char b ;
float c ;
double d ;
short e ;
long f;
printf("%d",sizeof(a));
printf("%c",sizeof(b));
printf("%f",sizeof(c));
printf("%f",sizeof(d));
printf("%d",sizeof(e));
printf("%d",sizeof(f));
}
我认为没错,可是vc++报错,wintc不显示内容
先谢了
----------------解决方案--------------------------------------------------------
sizeof返回的是一个整型值,当然不能用%F输出了,全部用%D输出
----------------解决方案--------------------------------------------------------
第一个问题提示一下:
假如A是整型,B是FLOAT型且B=1234.56
A=B;就可以得到整数部分,两个一减就可以得到纯小数部分,后面的工作就是判断小数部分有几位了
----------------解决方案--------------------------------------------------------
sizeof全部为整型,而且我用VC++,不对a,b,c,d,e,f赋初始值会有警告,不过能运行.
----------------解决方案--------------------------------------------------------
都改成 %d 吧
----------------解决方案--------------------------------------------------------
函数名: gcvt
功 能: 把浮点数转换成字符串
用 法: char *gcvt(double value, int ndigit, char *buf);
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char str[25];
double num;
int sig = 5; /* significant digits */
/* a regular number */
num = 9.876;
gcvt(num, sig, str);
printf("string = %s\n", str);
/* a negative number */
num = -123.4567;
gcvt(num, sig, str);
printf("string = %s\n", str);
/* scientific notation */
num = 0.678e5;
gcvt(num, sig, str);
printf("string = %s\n", str);
return(0);
}
我的思路是用上边那个...然后 ...统计'.'前后有的字符数(前n,后m)然后用循环输出...
----------------解决方案--------------------------------------------------------
谢谢大家,sizeof的明白了,第一问那个高手在帮一下啊,不要用指针
----------------解决方案--------------------------------------------------------