(Description已知一个字符串表示一个实数(不超过100位) ,请输出其整数部分,且输出不含前导0,但如果该整数为0,则输出0)
Description已知一个字符串表示一个实数(不超过100位) ,请输出其整数部分,且输出不含前导0,但如果该整数为0,则输出0。
Input一个实数(不超过100位)
Output
该实数的整数部分
Sample Input
00123.45
Sample Output
123
在这里插入代码片
#include<stdio.h>
#include<string.h>
void dd(char *x,int y);
int main(void)
{
char a[100];
int b,c,n = 0;
gets(a);
b = strlen(a);
if(b == 1)
{
printf("%c",a[0]);
}
else
{
for(c = b -1;c >= 0;c--)
{
if(a[c] != '0'&&a[c] != '-')
{
n = 1;
break;
}
}
if(n == 1)
{
dd(a,b);
}
else
{
printf("0");
}
}
return 0;
}
void dd(char *x,int y)
{
int i,a,b,c,n,m = 0;
if(x[0] == '-')
{
n = 1;
}
else
{
n = 0;
}
for(i = n;i < y;i++)//-000.123
{
if(x[i] != '.')
{
if(x[i] != '0'&&x[i] != '.')
{
m = 1;
break;
}
}
else
{
printf("0");
return;
}
}
if(n == 1)
{
printf("-");
}
for(i = n;i < y;i++)
{
if(x[i] > '0'&&x[i] <= '9')
{
break;
}
}
for(a = i;a < y;a++)
{
if(x[a] == '.')
{
break;
}
else
{
printf("%c",x[a]);
}
}
}
//代码还是挺复杂的,有简单方法的伙伴可以评论一下
//一起进步