输入一个字符串,判断它是否为回文

程序

      • 1.0[错误]
      • 2.0[正确]
      • Thanks

《程序设计基础-c语言》杨莉 刘鸿翔  
ISBN-978-7-03-032903-5  
p113
习题4

6.输入一个字符串,判断它是否为回文。所谓回文是指字符串正序和逆序是一样的,如“abcdcba”就是回文。

1.0[错误]

#if 0
	错误程序
#endif

#include
#include
#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("不是回文数");
	}
}

输入一个字符串,判断它是否为回文_第1张图片
程序更新】2020/5/27

2.0[正确]

修改:程序错误,未加字符串结束标志'\0'
#include
#include
#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指出错误

你可能感兴趣的:(#,专升本c语言)