C 语言教程 在线

1770c-exercise-example31

/*只是在if语句中加了一个若输入第二个字符不符合星期的判错;*/

#include <stdio.h>

int main()
{
    char i,j;
    printf("请输入第一个字符:");
    scanf("%c",&i);
    getchar();
    switch(i)
    {
        case 'm':
            printf("monday\n");
            break;
        case 't':
            printf("请输入下一个字母:");
            scanf("%c",&j);
            getchar();
            if (j == 'u')
            {
                printf("tuesday\n");
                break;
            }
            if (j == 'e')
            {
                printf("thursday\n");
                break;
            }
            else
            {
                printf("error");
                break;
            }
        case 'w':
            printf("wedesday\n");
            break;
        case 'f':
            printf("friday");
            break;
        case 's':
            printf("请输入下一个字符:");
            scanf("%c",&j);
            getchar();
            if(j == 'a')
            {
                printf("satarday");
                break;
            }
            if(j == 'u')
            {
                printf("sunday");
                break;
            }
            else
            {
                printf("error");
                break;
            }
        default:
            printf("error");
            break;
    }
    return 0;
}

1769c-exercise-example30

参考方法:

#include <stdio.h>
#define N 20
int isHui(int x){
    int i=0,j=0,a[N];
    while(x){
        a[i++]=x%10;
        j++;
        x/=10;
    }
    for(i=0;i<=j/2;i++){
        if(a[i]!=a[j-1-i])
            return 0;
    }
    return 1;
}
int main(){
    int n;
    scanf("%d",&n);
    if(isHui(n))
        printf("这是回文数\n");
    else
        printf("这不是回文数\n");
    return 0;
}

1768c-exercise-example30

参考方法:

#include<stdio.h>
#define N 20
int main(void)
{
    int i,j;
    int n;
    int a[N];
    printf("请输入数字:");
    scanf("%d",&n);
    for(j = 0; j < 5; j++)
    {
        a[j] = n%10;
        n = n/10;
    }
    j = 0;
    i = 4;
    while(i < j)
    {
        if(a[i] != a[j])
        {
            printf("这不是回文数\n");
            return 0;
        }
        j++;
        i--;
    }
    printf("这是回文数\n");
    return 0;
}

1767c-exercise-example30

判断是否是回文数,先将此数字按逆序重排,再与原先数值比较:

#include <stdio.h>
 
int main( )
{
    int x;
    int sum = 0;
    printf("请输入一个整数:\n");
    scanf("%d", &x);

    for (int i = x; i > 0; i /= 10)
        sum = sum * 10 + i % 10;

    if(sum == x)
        printf("%d 是回文数\n",x);
    else
        printf("%d 不是回文数\n", x);
}

1766c-exercise-example30

20位以内判断回文数

#include <stdio.h>

int main(void)
{
    unsigned long long input;
    int bit = 0;
    int xar[20];

    printf("请输入20位以内正整数: ");
    scanf("%llu", &input);
    
    unsigned long long x = input;

    while (x > 0)
    {
        xar[bit++] = x % 10;
        x /= 10;
    }

    for (int i = 0; i < bit / 2; i++)
    {
        if (xar[i] != xar[bit - i - 1])
        {
            printf("%llu : 不是一个 回文数 。\n", input);
            break;
        }
        if (i == bit / 2 - 1)
            printf("%llu : 是一个 回文数 。\n", input);
    }

    return 0;
}