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;  //   有的镜像字符不对号.
    }
  • 相关阅读:
    C语言实现时间差、星期、天数算日期(转)
    windbg 源码调试设置
    Windbg调试命令详解
    突破session 0隔离 和 劫持exe注入(转自梦无极)
    debug : StartService failed, getlasterror = 0x7f(127) 转
    反调试技巧总结-原理和实现
    关于Win7 x64下过TP保护(内核层)(转)
    python将dict中的unicode打印成中文
    Python 获取接口数据,解析JSON,写入文件
    python提取网页中json数据
  • 原文地址:https://www.cnblogs.com/A-FM/p/5098718.html
Copyright © 2011-2022 走看看