阅读背景:

第五章习题-uva401

来源:互联网 

401 Palindromes

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char a[21] = { 'A', 'E', 'H', 'I', 'J', 'L', 'M', 'O', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '5', '8' };
char g[100][100];
int ismirror(char *b)
{
	int i, j, n = 0, k;
	i = strlen(b);
	for (j = 0; j<i; j++)
	{
		for (k = 0; k<21; k++)
		{
			if (a[k] == b[j])
			{
				n++;
				continue;
			}
		}
	}
	if (n == i)
		return 1;
	else
		return 0;
}
int isplain(char *b)
{
	int i, k;
	i = strlen(b);
    if(i==1)
        return 1;
	for (k = 0; k<i / 2; k++)
	{
		if (b[k] != b[i - k - 1])
			return 0;
	}
	return 1;
}
int main()//switch-case语句不熟悉
{
	char b[20],r[50];
	int  c, d, t=0, i;
	while (gets_s(b,20*sizeof(char)))
	{
		memset(r, 0, 50 * sizeof(char));
		system("cls");
		c = ismirror(b);
		d = isplain(b);
		strcat_s(r,sizeof(char)*50, b);//strcat去掉第一个的结束符然后把第二个连接到末尾
		if (c == 1 && d == 1)
		{
			strcat_s(r,sizeof(char)*50, " -- is a mirrored palindrome.\n");
			strcpy_s(g[t++],sizeof(char)*100, r);
		}
		else if (c == 1 && d != 1)
		{
			strcat_s(r,sizeof(char)*50, " -- is a mirrored string.\n");
			strcpy_s(g[t++],sizeof(char)*100, r);
		}
		else if (c != 1 && d == 1)
		{
			strcat_s(r,sizeof(char)*50, " -- is a regular palindrome.\n");
			strcpy_s(g[t++],sizeof(char)*100, r);
		}
		else
		{
			strcat_s(r,sizeof(char)*50, " -- is not a palindrome.\n");
			strcpy_s(g[t++],sizeof(char)*100, r);
		}
		for (i = 0; i < t; i++)
		{
			puts(g[i]);
		}
	}
	return 0;
}#include<stdio.h>
#include<s



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: