输入一个字符串,判断它是否为回文
《程序设计基础-c语言》杨莉 刘鸿翔ISBN-978-7-03-032903-5p113习题46.输入一个字符串,判断它是否为回文。所谓回文是指字符串正序和逆序是一样的,如“abcdcba”就是回文。#include<stdio.h>#include<string.h>#define MAX 99int main(void){char str...
·
《程序设计基础-c语言》杨莉 刘鸿翔
ISBN-978-7-03-032903-5
p113
习题4
6.输入一个字符串,判断它是否为回文。所谓回文是指字符串正序和逆序是一样的,如“abcdcba”就是回文。
1.0[错误]
#if 0
错误程序
#endif
#include<stdio.h>
#include<string.h>
#define MAX 99
int main(void)
{
char str[MAX];
int i,num;
puts("输入一个字符串:\n");
gets(str);
num=(strlen(str)+1); //加1是因为strlen测得的长度不包括'\0',
//下面定义以数组要用到num
char a[num],b[num];
for(i=0;i<num;i++)
{
a[i]=str[i];
}
for(i=num;i>=0;i--)
{
b[i]=str[i];
}
if(strcmp(a,b)==0)
{
printf("是回文数");
}
else
{
printf("不是回文数");
}
}
【程序更新】2020/5/27
2.0[正确]
修改:程序错误,未加字符串结束标志'\0'
#include<stdio.h>
#include<string.h>
#define MAX 99
int main(void)
{
char str[MAX];
int i,j,num;
puts("输入一个字符串:\n");
gets(str);
num=strlen(str);
char b[num];
for(i=num-1,j=0;i>=0;i--,j++) //倒序把数组重新赋给数组b
{
b[j]=str[i];
}
b[j]='\0'; //字符数组结束标志
if(strcmp(str,b)==0)
{
printf("是回文数");
}
else
{
printf("不是回文数");
}
}
Thanks
感谢:h_hengchang指出错误
更多推荐
所有评论(0)