#include <stdio.h>
#include<stdlib.h>
#include<stdbool.h>
bool judge(char s[]);
int main()
{
char s[1000];
gets(s);
if(judge(s))
printf("合法语句");
else
printf("不合法!");
return 0;
}
bool judge(char s[])
{
int i=0;
double sum=0;
//判断小数点以前的部分
while(s[i]!='\0')
{
if(s[i]>='0'&&s[i]<='9')
{
sum=sum*10+s[i]-'0';
i++;
}
else if(s[i]!='.')//如果出现了非数字字符和小数点字符,非法
return false;
else
break;//小数点出现,退出
}
i++;
float k=0.1;
//计算小数点以后的部分
while(s[i]!='\0')
{
//printf("2");
if(s[i]>='0'&&s[i]<='9')
{
sum=sum+(s[i]-'0')*k;
k=k*0.1;
i++;
}
else//出现非数字字符直接返回false
return false;
}
if(s[0]!='.')//处理特殊情况,只有小数点输入
{
printf("%.3f\n",sum);
return true;
}
else
return false;
}
吉大考研复试准备-2016年计专初试第七题-给一个图判定符合定义的数字
于 2024-03-19 16:44:27 首次发布