您的位置:首页 > 其它

判断一个字符串是不是对称的

2017-05-11 19:23 260 查看
算法描述:

函数checkstr判断一个字符串是不是对称的,如:“abccba”是对称的,“abccbaa”则不是对称的。函数声明如下,其中msg为输入的字符串,对称返回0,不对称返回-1,请实现该函数。

int checkstr(const char *msg);

算法实现:

#include <stdio.h>
#define N 100

int checkstr(char const *msg)
{
char const *p = msg;
while(*p)
p++;
p--;
while(msg < p)
{
if (*msg != *p)
return -1;
msg++;
p--;
}
return 0;

}

int main()
{
char str
;
int ret_flag;
printf("please input a string:");
gets(str);//gets()可以接受带空格字符串
ret_flag = checkstr(str);
if (ret_flag == 0)
printf("is symmetric!!!");
else
printf("isn't symmetric!!!");
return 0;
}

变形算法描述:

编写一个程序,判定用户输入的正整数是否为“回文数”,所谓回文数是指正读反读都相同的数,例如12321就是一个回文数。

算法实现:

#include <stdio.h>

int main()
{
int buffer[10], i, k ,b;
long number, n;
printf("输入一个正整数:");
scanf("%ld", &number);
k = 0;
n = number;
do
{
buffer[k] = n % 10;
k = k + 1;
n = n / 10;
}while(n != 0);
b = 1;
for (i = 0; i < k / 2; i++)
if (buffer[i] != buffer[k - i -1])
b = 0;
if (b)
printf("%ld is Palindrome number!!!", number);
else
printf("%ld isn't Palindrome number!!!", number);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: