理清思路就可以了
#include<stdio.h>
#include<string.h>
int main(void)
{ char a2[4][30];//每次循环需要分四个一维数组进行判断
char a1[31];//需要输入的数组
int k=0,j=0;
while(scanf("%s",a1)!=EOF)
{ getchar();
int judge2=0;
for(int i=0;i<strlen(a1)+1;i++)//这里要strlen函数加一的原因是 我们要判断结束符\0
{
if(a1[i]!='.'&&a1[i]!='\0')
a2[k][j++]=a1[i];//如果不符合就拷贝给a2数组
else//判断每个一维数组
{
int judge1=0;
for(int l=0;l<j;l++)
{
if('0'<=a2[k][l]&&a2[k][l]<='9')
judge1++;
}
if(judge1==j)
{ int t=0;
for(int l=0;l<j;l++)
{
t=t*10+(a2[k][l]-'0');
}
if(t<=255&&t>=0)
judge2++;
}
k++;
j=0;
}
}
if(judge2==4)// 四个一维数组都无误的话输出Y
printf("Y\n");
else
printf("N\n");
k=0;//最后不要忘了让k等于0
}
return 0;
}