#include <stdio.h>
#include <string.h>

int main() {
    char stu_id[13];  // 学号
    char academy[30];  // 学院
    int grade;  // 年级
    int class_num;  // 班级
    int num_in_class;  // 班内序号

    // 学院代码表
    char academy_code[60][3] = {"01", "机械与动力工程学院", "02", "电气工程学院", "03", "化工学院", "04", "土木工程学院", 
        "05", "水利科学与工程学院", "06", "力学与安全工程学院", "07", "管理工程学院", "08", "材料科学与工程学院", "09", "建筑学院",
        "63", "口腔医学院", "10", "地球科学与技术学院", "11", "生态与环境学院", "21", "数学与统计学院", "22", "物理学院", 
        "23", "化学学院", "24", "信息工程学院", "31", "商学院", "32", "旅游管理学院", "33", "政治与公共管理学院", "34", "信息管理学院",
        "35", "法学院", "36", "文学院", "37", "外国语与国际关系学院", "38", "历史学院", "39", "马克思主义学院", "40", "新闻与传播学院",
        "41", "教育学院", "45", "书法学院", "46", "美术学院", "47", "生命科学学院", "48", "音乐学院", "49", "体育学院(校本部)",
        "51", "基础医学院", "52", "公共卫生学院", "53", "药学院", "54", "护理与健康学院", "84", "国际学院", "90", "交换生"};

    while (1) {
        printf("请输入12位学号(输入0退出程序):");
        scanf("%s", stu_id);
        if (strcmp(stu_id, "0") == 0) {
            break;
        }

        if (strlen(stu_id) != 12) {
            printf("学号格式错误,请重新输入!\n");
            continue;
        }

        // 判断年级
        char grade_str[5];
        strncpy(grade_str, stu_id, 4);
        grade_str[4] = '\0';
        if (strcmp(grade_str, "2022") == 0) {
            grade = 2022;
        } else if (strcmp(grade_str, "2021") == 0) {
            grade = 2021;
        } else if (strcmp(grade_str, "2020") == 0) {
            grade = 2020;
        } else if (strcmp(grade_str, "2019") == 0) {
            grade = 2019;
        } else if (strcmp(grade_str, "2018") == 0) {
            grade = 2018;
        } else {
            printf("学号年级错误,请重新输入!\n");
            continue;
        }

        // 判断学院
        char academy_code_str[3];
        strncpy(academy_code_str, stu_id + 4, 2);
        academy_code_str[2] = '\0';
        int found = 0;
        for (int i = 0; i < 60; i += 2) {
            if (strcmp(academy_code_str, academy_code[i]) == 0) {
                strcpy(academy, academy_code[i + 1]);
                found = 1;
                break;
            }
        }
        if (!found) {
            printf("学号学院错误,请重新输入!\n");
            continue;
        }

        // 判断班级和班内序号
        char class_num_str[3];
        strncpy(class_num_str, stu_id + 6, 2);
        class_num_str[2] = '\0';
        char num_in_class_str[3];
        strncpy(num_in_class_str, stu_id + 8, 2);
        num_in_class_str[2] = '\0';
        class_num = atoi(class_num_str);
        num_in_class = atoi(num_in_class_str);

        printf("%d级,%s,%d班,%d号\n", grade, academy, class_num, num_in_class);

        char answer;
        do {
            printf("是否继续输入学生的学号(y/n):");
            scanf(" %c", &answer);
        } while (answer != 'y' && answer != 'n');

        if (answer == 'n') {
            break;
        }
    }

    return 0;
}
``
用C语言编写程序:从键盘上任给一个郑州大学学生的学号输出该学号相关的信息。例如:输入202201011150输出:2022级机械与动力工程学院11班50号上载拍照图片、视频:0分。 要求: 1有输入对输入的学号判断不是12位的数字符号重新输入学号当输入0结束程序运行如果是12位数字符号分别输出:级学院班级班内序号 2通过提示信息是否继续输入学生的学号yn回答y继续输入;回答n结束程序运行。

原文地址: https://www.cveoy.top/t/topic/eOsn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录