2401_87896388 2024-10-08 12:42 采纳率: 100%
浏览 26
已结题

车辆限行c语言编程题

编写一个程序
1. 限行规则:
周一至周五限行,周六周日不限行。
雾霾指数低于200时不限行。
雾霾指数在200至399之间时,每天限行两个尾号的汽车:
周一限行1和6。
周二限行2和7。
周三限行3和8。
周四限行4和9。
周五限行5和0。
雾霾指数在400或以上时,每天限行五个尾号的汽车:
周一、周三和周五限行1, 3, 5, 7, 9。
周二和周四限行0, 2, 4, 6, 8。
2. 输入说明:
输入三个整数,用空格分隔。
第一个整数表示车牌号(至多6位数字)。
第二个整数表示雾霾指数(0-600)。
第三个整数表示星期几(1-7,1表示周一,2表示周二,7表示周日)。
3. 输出说明:
如果车辆可以出行(不限行),输出"Yes"。
如果车辆限行,输出"No"。
如果输入数据不符合数值范围,输出"input error"。
4. 输入样例:
样例1:137891 123 1
样例2:0 265 5
样例3:-32132 256 2
5. 输出样例:
样例1:Yes
样例2:No
样例3:input error

  • 写回答

1条回答 默认 最新

  • 趣享先生 优质创作者: 编程框架技术领域 2024-10-08 12:53
    关注

    代码如下:(答题不易,还请题主采纳!)

    
    #include <stdio.h>
    
    int main() {
        int plateNumber, hazeIndex, dayOfWeek;
    
        // 读取输入
        scanf("%d %d %d", &plateNumber, &hazeIndex, &dayOfWeek);
    
        // 检查输入数据范围
        if (plateNumber < 0 || plateNumber > 999999 || hazeIndex < 0 || hazeIndex > 600 || dayOfWeek < 1 || dayOfWeek > 7) {
            printf("input error\n");
            return 0;
        }
    
        // 判断是否限行
        if ((dayOfWeek >= 1 && dayOfWeek <= 5) && hazeIndex >= 200) {
            if ((dayOfWeek == 1 && (plateNumber % 10 == 1 || plateNumber % 10 == 6)) ||
                (dayOfWeek == 2 && (plateNumber % 10 == 2 || plateNumber % 10 == 7)) ||
                (dayOfWeek == 3 && (plateNumber % 10 == 3 || plateNumber % 10 == 8)) ||
                (dayOfWeek == 4 && (plateNumber % 10 == 4 || plateNumber % 10 == 9)) ||
                (dayOfWeek == 5 && (plateNumber % 10 == 5 || plateNumber % 10 == 0))) {
                printf("No\n");
            } else {
                printf("Yes\n");
            }
        } else if (hazeIndex >= 400) {
            if ((dayOfWeek == 1 || dayOfWeek == 3 || dayOfWeek == 5) && (plateNumber % 10 == 1 || plateNumber % 10 == 3 || plateNumber % 10 == 5 || plateNumber % 10 == 7 || plateNumber % 10 == 9)) {
                printf("No\n");
            } else if ((dayOfWeek == 2 || dayOfWeek == 4) && (plateNumber % 10 == 0 || plateNumber % 10 == 2 || plateNumber % 10 == 4 || plateNumber % 10 == 6 || plateNumber % 10 == 8)) {
                printf("No\n");
            } else {
                printf("Yes\n");
            }
        } else {
            printf("Yes\n");
        }
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月8日
  • 已采纳回答 10月8日
  • 创建了问题 10月8日