woaiccc11 发表于 2022-12-11 19:50:32

车牌限行这个写不出来了c语言,求助大佬

某地举行活动,车辆限行:

输入一行字符表示车牌号码,五位,只允许是0~9数字或大写英文字母,至少一位数字。

以下几种情况输出“非法输入”:

输入超过五位字符;
没有出现数字;
3)出现其他字符。
若最后一个出现的数字为奇数,输出“限行” ;否则输出“通行” 。

输入格式:
输入一行字符

输出格式:
输出判定结果:非法输入 或 限行 或 通行

zhangjinxuan 发表于 2022-12-11 19:58:18

#include <stdio.h>
#include <string.h>            
int main() {
        char s, n;
        scanf("%s", s);
        n = strlen(s);
        if (n > 5) {
                puts("非法输入");
                return 0;
        }
        int ok = 0, have_number = 0, i;
        for (i = 0; i < n; ++i) {
                if (s >= '0' && s <= '9') {
                        have_number = 1;
                        ok = ((s - '0') % 2 == 1);
                } else if (s < 'A' || s > 'Z') {
                        puts("非法输入");
                        return 0;
                }
        }
        if (!have_number){
                puts("非法输入");
                return 0;
        }
        if (ok) puts("限行");
        else puts("通行");
}

傻眼貓咪 发表于 2022-12-11 20:58:24

#define _CRT_SEVURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
        char plateNumber;
        int n, flag = n = 0, last;

        while ((plateNumber = getchar()) != '\n');
        plateNumber[--n] = '\0';

        if (n > 5) {
                printf("非法输入");
        }
        else {
                for (int i = 0; i < n; ++i) {
                        if (plateNumber < '0' || (plateNumber > '9' && plateNumber < 'A') || plateNumber > 'Z') {
                                printf("限行");
                                return 0;
                        }
                        if (plateNumber > '0' && plateNumber < '9') flag = 1;
                }
                last = plateNumber - '0';
                printf(last >= 0 && last <= 9 && !(last&1) && flag ? "通行" : "限行");
        }
        return 0;
}

zhangjinxuan 发表于 2022-12-12 08:11:37

傻眼貓咪 发表于 2022-12-11 20:58


输入一行字符表示车牌号码,五位,只允许是0~9数字或大写英文字母,至少一位数字。

傻眼貓咪 发表于 2022-12-12 18:24:28

zhangjinxuan 发表于 2022-12-12 08:11


{:10_285:}
页: [1]
查看完整版本: 车牌限行这个写不出来了c语言,求助大佬