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

参考技术A #include <stdio.h>
#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型的 这样不就只能返回一个字符了吗

C高级第一次PTA作业 要求三

ZZNUOJ_用C语言编写程序实现1168:大整数(指针专题)(附完整源码)

ZZNUOJ_C语言1097:计算平均成绩(函数专题)(完整代码)

C语言中显示小数部分