C语言 实数的小数部分(指针专题) 按题目要求来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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");这是干嘛的
本回答被提问者和网友采纳ZZNUOJ_用C语言编写程序实现1164:实数的小数部分(指针专题)(附完整源码)
题目描述
<读入一个实数,输出该实数的小数部分,小数部分若多余的末尾0,请去掉。如输入111111.12345678912345678900
则输出0.123456789123456789。若去掉末尾0之后小数部分为0,则输出“No decimal part”。注意该实数的位数不超过100位。
请定义并使用如下函数。
char *decimal(char *p) 将字符串p表示的实数的自小数点开始的小数部分存入一个字符串,并由函数返回,若p为“123.456”,则返回的字符串为“.456”。若小数部分为0,返回空指针NULL。
以上是关于C语言 实数的小数部分(指针专题) 按题目要求来的主要内容,如果未能解决你的问题,请参考以下文章
ZZNUOJ_用C语言编写程序实现1165:实数取整(指针专题)(附完整源码)
C语言指针初学者 请帮我看看下面的提 为啥调用函数返回值是char型的 这样不就只能返回一个字符了吗
ZZNUOJ_用C语言编写程序实现1168:大整数(指针专题)(附完整源码)