我猜楼主的想法是:
让数组的头和尾比较,一样了,就比较下一对,一直比较到最后,如果i=j,就说明是回文。
但是题主却没有用循环语句,按照楼主的程序就能比较两次,比较不完肯定错;而且题主找到的i,并不指向数组最后一个元素,而是指向他的结尾符号。(详情看图)
改正意见:
1. 使用循环语句,从头判断到尾。
那就要求我们给循环语句一个最长执行长度,这就要考虑两种情况,一种,数组长度为奇数,另一种,数组长度尾偶数。不同的情况我们的判决情况也不一样,必须选一个适合两种情况的判决条件,这里使用n=i/2-1,让n来作为标准。(原因看图)。(其实除了要考虑这种情况之外,还要考虑特殊情况,比如长度为1,2这样的,这种特殊情况,就是程序容易忽略,容易出错的地方。)
2. 在判断前,i-1,让i指向数组最后一个元素。
#include <stdio.h>总结:编程不容易,思考需谨慎。面向过程的的编程,任何情况都要考虑出来,这样你的程序才是正确的。
追问答主给的答案我看懂了 但是还是想问一下 为什么我写的那个只能循环两次呢 是哪里出了问题呀 非常感谢!!!
答主给的答案我看懂了 但是还是想问一下 我的答案可以改一下哪里 改成正确的么 非常感谢!!!
追答你想要从头到尾都比较的话,那你就要有一个循环语句把比较的部分包括起来。
你的句子里的循环语句用来判断数组长度了。并不能帮助你判断。
所以你需要再使用一个while语句,把if语句包括起来,这样就可以比较好多次了。
好非常感谢
好非常感谢