C语言课堂讨论交流.ppt
C语言课堂讨论交流,三院一队自动化 徐兆璞,P307 习题7.9,程序功能:判断输入的一串字符 是否为“回文”,回文:顺读和倒读都一样的字符串,如“level”,“ABCCBA”,程序进行步骤,一、分析题目二、设计算法三、编程实现,一、分析题目,回文实际上就是一个对称的字符串,判断某一字符串是否是回文只需判断该字符串的对称性即可,二、设计算法,Step1:输入一行字符串给一个字符数组Step2:设置标志变量flagStep3:从第一个字符开始判断每一个字符与其对称的字符是否相等Step4:若相等,重复执行Step3,直到字符串的中间字符判断完毕,执行Step5;若不相等,执行Step6Step5:输出该字符串是回文Step6:输出该字符串不是回文,#include#include#define N 80main()int i,n,flag=0;char strN;printf(Please enter a line of characters:n);gets(str);n=strlen(str);for(i=0;(in/2),三、编程实现,温馨提示:,1.设置两个指针pStart和pEnd,让pStart指向字符串首部,让pEnd指向字符串尾部。2.利用循环,从字符串两边对指针所指字符进行比较,当对应的两字符相等且两指针未超越对方时,使指针pStart向前移动一个字符位置,使指针pEnd向后移动一个字符串位置,一旦发现对应的两字符不相等或两指针已互相超越(不可能是回文),即立刻停止循环。3.根据退出循环时两指针的位置,判断字符串是否是回文。,#include#include#define N 80 main()char aN,*pStart,*pEnd;int n,i;printf(Please enter a line of characters:n);gets(a);n=strlen(a);pStart=a;pEnd=a+n-1;,for(i=0;(in/2),第二种方案:,利用标志变量flag,#include#include#define N 80 main()char aN,*pStart,*pEnd;int n,i,flag=0;printf(Please enter a line of characters:n);gets(a);n=strlen(a);pStart=a;pEnd=a+n-1;,for(i=0;(in/2),谢谢!,