解题思路:
考虑错误的情况,将条件分为大前提小前提,对于不满足大前提或满足大前提不满足小前提的输出N并且终止,能走到最后的就是正确的IP
参考代码 #include <stdio.h> int main() { void IP(char *p); int i=0,q=0; char f; while(scanf("%s",&f)!=EOF)//多行输入 { IP(&f); } return 0; } void IP(char *p) { int i=0;//初始化i的值,下面有大用 one:while(*p!='\0') { if((*p>='0'&&*p<='9')||*p=='.')//判断的大前提 { if(*p=='.')//第一个情况 { if(i>=3)//若"."前有三位数即可着手判断输入的值有没有在【0,255】范围 { if(*(p-1)+*(p-2)*10+*(p-3)*100-5328>255)//判断条件 { printf("N\n"); goto two;//判断出结果后马上终止函数 } } i=0;//重置i的值 *p++;//指针指向字符串下一个字符 goto one;//,避免下面的i++,保证每次i做加1都是当前的*p指向数字的时候 } if(i==0&&*p=='0')//第二个情况 { printf("N\n"); goto two;//判断出结果后马上终止函数 } } else//若不符合大前提,直接判断错误 { printf("N\n"); goto two;//判断出结果后马上终止函数 } *p++; i++; } printf("Y\n");//若没有判断出错误就是正确 two:;//放在这里是为了给已经判断出错误的情况直接终止函数又不至于影响正确的情况输出Y }
0.0分
0 人评分
奖学金 (C++代码)浏览:2056 |
c primer plus 第十二章 12.1小节浏览:400 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:563 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:639 |
C语言训练-求PI* (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:593 |
C语言考试练习题_保留字母 (C语言代码)浏览:743 |
母牛的故事 (C语言代码)浏览:594 |
1011题解浏览:819 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:571 |