求一个c语言函数:当小数部分不为0时,返回1;小数部分为0时,返回0。如decimal(4.5) return0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一个c语言函数:当小数部分不为0时,返回1;小数部分为0时,返回0。如decimal(4.5) return0相关的知识,希望对你有一定的参考价值。
这个答案看不懂,也运行不起来
int decimale1(float x)
int xtoint;
xtoint= (int) x;
if (( x-(float)xtoint) !=0.)
return 1;
else return 0;
这样就可以运行的,意思就是xtoint是x取整数,如x = 4.5 那么xtoint = 4
然后x - xtoint = 0.5,不等于0,所以证明x后面的小数部分不是0,所以返回1,若等于0,则说明x后面的小数部分是0,所以返回0追问
你是怎么运行起来的?我编译没有错误,链接时出现
两个错误LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/hello.exe : fatal error LNK1120: 1 unresolved externals
你创建工程的时候对么?
参考技术B (int)x是将x强制转换为整型,对浮点数来说,就是取整数部分。再判断x去掉整数部分后,剩余部分(即小数部分)是否为0。追问
你是怎么运行起来的?我编译没有错误,链接时出现
两个错误LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/hello.exe : fatal error LNK1120: 1 unresolved externals
你的代码仅仅是一个函数啊,一个完整的程序要有main函数的。你不会连C语言的入门都没有看就直接看代码吧
本回答被提问者采纳 参考技术C int Decimal(float x)int a=(int)x;
if(x-a==0)
return 0;
else
return 1;
追问
你写的这个还是看不懂,也运行不起来,能详解一下吗?
参考技术D 什么意思C语言 实数的小数部分(指针专题) 按题目要求来
Description
读入一个实数,输出该实数的小数部分,小数部分若多余的末尾0,请去掉。如输入111111.12345678912345678900
则输出0.123456789123456789。若去掉末尾0之后小数部分为0,则输出“No decimal part”。注意该实数的位数不超过100位。
请定义并使用如下函数。
char *decimal(char *p)
将字符串p表示的实数的自小数点开始的小数部分存入一个字符串,并由函数返回,若p为“123.456”,则返回的字符串为“.456”。若小数部分为0,返回空指针NULL。
Input
输入一个实数。不超过100位。
Output
输出小数部分,输出占一行。
Sample Input
111111.12345678900012345678900
Sample Output
0.123456789000123456789
#include <string.h>
#include <stdlib.h>
char* decimal(char *p)
char *s = (char*)malloc(100*sizeof(char));
int i=0,l=strlen(p),j=0;
while (i < l&&p[i] != '.')
++i;
if (i == l)
return NULL;
while (i < l)
s[j++] = p[i++];
s[j] = '\0';
--j;
while (s[j] == '0')
s[j--] = '\0';
return s;
int main()
char p[101];
scanf("%s", p);
printf("%s", decimal(p));
system("pause");
return 0;
追问
system("pause");这是干嘛的
本回答被提问者和网友采纳以上是关于求一个c语言函数:当小数部分不为0时,返回1;小数部分为0时,返回0。如decimal(4.5) return0的主要内容,如果未能解决你的问题,请参考以下文章