本文已参与「新人创作礼」活动,一起开启掘金创作之路。
本文第一题为函数题型,第二题为编程题型
1 判断回文字符串(函数题)
本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。
函数接口定义:
bool palindrome( char *s );
函数palindrome
判断输入字符串char *s
是否为回文。若是则返回true
,否则返回false
。
裁判测试程序样例:
#include <stdio.h>
#include <string.h>
#define MAXN 20
typedef enum {false, true} bool;
bool palindrome( char *s );
int main()
{
char s[MAXN];
scanf("%s", s);
if ( palindrome(s)==true )
printf("Yes\n");
else
printf("No\n");
printf("%s\n", s);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例1:
thisistrueurtsisiht
输出样例1:
Yes
thisistrueurtsisiht
输入样例2:
thisisnottrue
输出样例2:
No
thisisnottrue
我的代码
bool palindrome( char *s )
{
int len,i;
len=strlen(s);
for(i=0;i<=len/2;i++)
{
if(s[i]!=s[len-1-i])
return false;
}
return true;
}
2 判断回文字符串 (编程题)
输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。
输入样例1:
level
输出样例1:
level Yes
输入样例2:
1 + 2 = 2 + 1 =
输出样例2:
1 + 2 = 2 + 1 = No
我的代码
#include<stdio.h>
int main()
{
int i=0,k=0,s;
char ch[80];
while ((ch[k]=getchar())!='\n')
k++;
ch[k]='\0';
s=k;
k=k-1;
while(i<k)
{
if(ch[i]!=ch[k])
break;
i++;
k--;
}
if(i>=k)
{
for(i=0;i<s;i++)
printf("%c",ch[i]);
printf("\n");
printf("Yes");
}
else
{
for(i=0;i<s;i++)
printf("%c",ch[i]);
printf("\n");
printf("No");
}
return 0;
}