解题思路:
注意事项:
参考代码:
#include
#include
int stra,strb,strc,strd;//在这里先定义好
char a[5],b[5],c[5],d[5];//这里的四个数字用来表示四个数字
char m[30];
void length();//这个函数用来测量数字所对应的长度
void judge();//这个函数用来判断是否符合要求
int main()
{
while(scanf("%s",m)!=EOF)//输入字符串
{
judge(m);//将这个字符串带到判断函数中去
}
return 0;
}
void length()//这里是计算长度的函数
{
int i;
stra=0;strb=0;strc=0;strd=0;;i=0;//stra指第一个数字的长度,strb,strc,strd以此类推
while(m[i]!='.')//这里的判断条件就是在"."出来之前的字符串存到数组a里面去
{
a[stra]=m[i];
i++;
stra++;//每存完一个加1
}
i++;//这里必须要加1
while(m[i]!='.')//后面都是同理
{
b[strb]=m[i];
i++;
strb++;
}
i++;
while(m[i]!='.')
{
c[strc]=m[i];
i++;
strc++;
}
i++;
while(m[i]!='\0')//最后一个不可以用"."作为循环结束判断标志,只能用'\0'作为结束判断标志
{
d[strd]=m[i];
i++;
strd++;
}
}
void judge ()//判断函数,同样定义成void型,返回时为空
{
if(strlen(m)>15)//因为题目说最大数字为255,所以字符串最大长度为15,如果比15大,那就肯定不符合题意
{
printf("N\n");
return ;//因为定义成void函数,所以返回空的
}
else
{
length();//否则对这个字符串进行长度计算
}
int suma,sumb,sumc,sumd;//suma是指a数组所存的数字所代表的数,sunb等同理以此类推
int i;
suma=0;sumb=0;sumc=0;sumd=0;//开始时先赋值为0
for(i=0;i<stra;i++)
{
if(a[i]>='0'&&a[i]<='9')//这里判断时必须带上0。如果出现"001"这种情况后面有判断方法,带上0是防止0在十位或者个位出现
{
suma=suma*10+(a[i]-48);//这里因为a[i]是字符型变量,所对用的数字必须减去0所对应的ASCII码值
if(suma==0)//如果出现"001"类似情况,suma就会等于0,即输出N
{
printf("N\n");
return ;
}
}
else
{
printf("N\n");
return ;
}
}
if(suma>255)//这里判断这个数字是否大于255,大于255就输出N
{
printf("N\n");
return ;
}
for(i=0;i<strb;i++)//后面都是同理
{
if(b[i]>='0'&&b[i]<='9')
{
sumb=sumb*10+(b[i]-48);
if(sumb==0)
{
printf("N\n");
return ;
}
}
else
{
printf("N\n");
return ;
}
}
if(sumb>255)
{
printf("N\n");
return ;
}
for(i=0;i<strc;i++)
{
if(c[i]>='0'&&c[i]<='9')
{
sumc=sumc*10+(c[i]-48);
if(sumc==0)
{
printf("N\n");
return ;
}
}
else
{
printf("N\n");
return ;
}
}
if(sumc>255)
{
printf("N\n");
return ;
}
for(i=0;i<strd;i++)
{
if(d[i]>='0'&&d[i]<='9')
{
sumd=sumd*10+(d[i]-48);
if(sumd==0)
{
printf("N\n");
return ;
}
}
else
{
printf("N\n");
return ;
}
}
if(sumd>255)
{
printf("N\n");
return ;
}
printf("Y\n");
return ;
}
0.0分
3 人评分
最小公倍数 (C语言代码)浏览:894 |
淘淘的名单 (C语言代码)浏览:1167 |
【蟠桃记】 (C语言代码)浏览:1084 |
简单的a+b (C语言代码)浏览:529 |
1071题解浏览:584 |
Pascal三角 (C语言代码)浏览:707 |
上车人数 (C语言代码)浏览:752 |
1392题解(大数相加)浏览:640 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1359 |
C二级辅导-公约公倍 (C语言代码)浏览:1325 |