zoukankan      html  css  js  c++  java
  • 程序3-3 Palindromes

    刘大婶说这个比较难,哈哈,我感觉自己写的代码还是比较简单的.

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    int is_palindrome(char x[],int n);//用于判断是否回文  //如果回文的话,返回值为1,反之为0
    int is_mirrored(char x[],int n);//用于判断是否镜像    //同上
    int main()
    {
        char a[11111];
        int s1,q,w;
        while(scanf("%s",a)!=EOF)
        {
            s1=strlen(a);
            q=is_palindrome(a,s1);     //传送过去的长度是实际长度
            w=is_mirrored(a,s1);
            if(q==1)
            {
                if(w==1)
                    printf("%s -- is a mirrored palindrome.",a);
                else
                    printf("%s -- is a regular palindrome.",a);
            }
            else
            {
                if(w==1)
                    printf("%s -- is a mirrored string.",a);
                else
                    printf("%s -- is not a palindrome.",a);
            }
            printf("
    
    ");
        }
        return 0;
    }
    int is_palindrome(char x[],int n)//判断是否回文
    {
        int m,i,q=0;
        m=n/2;             //实际长度
        for(i=0;i<m;i++)
        {
            if(x[i]==x[n-1-i])
                q++;
        }
        if(q==m)
            return 1;
        else
            return 0;
    }
    int is_mirrored(char x[],int n)
    {
        char a[]={"AEHIJLMOSTUVWXYZ12358"},b[]={"A3HILJMO2TUVWXY51SEZ8"};
        int s1,q=0,j,m,i;
        if(n%2==0)    //用于处理字符串的奇偶数.
            m=n/2;
        else
            m=(n/2)+1;
        s1=sizeof(a);
        for(i=0;i<m;i++)          //一次一次的向下 传送    所输入的  字符
        {
            for(j=0;j<s1;j++)     //将上一个传送下来的字符   寻找一下看看有没有是镜像字符的
            {
                if(x[i]==a[j])   //将输入的字符一个个的  和   镜像字符比较
                {
                    break;      //如果有相同的就跳出去.
                }
            }
            if(j==s1) //不是镜像字符
                return 0;
            else    //发现了 它是镜像串中的字符
            {
                if(x[n-1-i]==b[j])//用于判断左边的  是不是和它对应的镜像串.
                {
                    q++;           //用于记录有几对镜像字符.
                }
            }
        }
        if(q==m)
            return 1;  //   所有的镜像字符都对上号了.
        else
            return 0;  //   有的镜像字符不对号.
    }
  • 相关阅读:
    Unity NGUI 3.0.4版本 制作网络版斗地主
    unity3D与网页的交互---做项目的一点总结
    Cross-platform Tools
    Win7下Qt5的安装及使用
    VS Installer教程
    C++ & MFC
    论文模板的定制
    批处理文件
    MFC六大关键技术
    C/C++常用预处理指令
  • 原文地址:https://www.cnblogs.com/A-FM/p/5098718.html
Copyright © 2011-2022 走看看