12.21C语言 判断回文
2023-12-24 01:08:57
一.源代码
#include<stdio.h>
#define MAXLINE 80
int main() {
int i, k;
char line[MAXLINE];
printf("输入字符串:");
k = 0;
while ((line[k] = getchar()) != '\n') {//从标准输入中读取字符并存储在数组line中,并将字符储存在当前的位置k,直到遇到换行符\n
k++;
}
line[k] = '\n';//把换行符添加到数组末尾,因为循环中没用储存进换行符,(遇到换行循环结束了)
i = 0;//第一个字符的序号
k = k - 1;//最后一个字符的序号
while (i < k) {
if (line[i] != line[k]) {
break;
}
i++;
k--;
}
if (i >= k) {
printf("是");
}
else {
printf("不是");
}
return 0;
}
二.核心代码分析
i = 0;//第一个字符的序号
k = k - 1;//最后一个字符的序号
while (i < k) {
if (line[i] != line[k]) {
break;
}
i++;
k--;
}
从字符第一个开始和最后一个字符比较,所以i从0开始,k从最后一位字符开始(k=k-1是因为数组中最后一个是换行符),若最后i>=k即说明是回文序列如radar
文章来源:https://blog.csdn.net/lanssssss/article/details/135137984
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!