编写程序,从键盘输入一个不等于0的浮点数,然后分别输出这个浮点数的符号、整数部分和小数部分。

2025-01-19 11:32:19
推荐回答(4个)
回答1:

#include
void main()
{ float t;
printf("输入一个不为0的浮点数!\n");
scanf("%f",&t);
printf("符号位是:");
if(f>0)
printf("+\n");
else if(f<0)
printf("-\n");
printf("整数部分为:%d",(int)t);
printf("小数部分为:%f",(float)(t-(int)t));
}

回答2:

int main(void){
float var;
char str[20];
scanf("%f", &var);
sprintf(str, "%f", var);
char *p = str;
if ((*p >= '0') && (*p <= '9')) //符号省略的正数,
printf ("符号为: %c \n", '+');
else
printf ("符号为:%c \n", '-');
p++;

printf("整数部分为:”);
while (((*p >= '0') && (*p <= '9')){
printf ("%c ", *p);
p++;
}
printf ("\n");

p++; //掠过小数点
printf("小数部分为:”);
while (((*p >= '0') && (*p <= '9')){
printf ("%c ", *p);
p++;
}
printf ("\n");

return 0;
}

回答3:

思路:
1.获得键盘输入的浮点数f
2.用split函数来处理这个浮点数。处理方案如下:
1>判断正负先,定义一个字符Char用来存储正负号
2>用小数点“.”作分隔符,输出小数部分和整数部分。
编程工具:Visual Studio 2005 C++/C#都有改函数

回答4:

以下是不使用条件语句的方法
#include
#include
Int main()
{
double x;
char sign;
int a,b,c;

scanf(“%lf”,&x);
a=(int)x;
b=fabs(a);
c=a/b;
c=-c+44;
sign='c';
x=fsbs(x)-b;
printf(“sign: %c\n integral part:%d\n decimal fraction part:%lf\n ”,sign,b,x);
return 0;
}