求下面问题的完整c语言代码

【题目内容】
某个文件中保存着为3年级小学生设计的算术题,要求所有题目运算数必须是100以内,并且结果不能是小数或负数,请检查所有题目是否符合要求,不符合要求题目请将其题号写在另一个文件中,并且附上原因。
【输入形式】
文本文件
【输出形式】
题目检查结果
【测试用例1】
输入:
(1) 3-4 (2) 5*4 (3) 3/2
输出:
(1) 结果为负数
(3) 结果为小数

完整的代码实现和注释如下,望采纳

#include <stdio.h>
#include <stdlib.h>
int main() {
    // 打开输入文件
    FILE *input_file = fopen("input.txt", "r");
    if (input_file == NULL) {
        printf("无法打开输入文件\n");
        exit(1);
    }
    // 打开输出文件
    FILE *output_file = fopen("output.txt", "w");
    if (output_file == NULL) {
        printf("无法打开输出文件\n");
        exit(1);
    }
    // 循环读取输入文件中的每一行
    char line[100];
    int line_num = 0;
    while (fgets(line, sizeof(line), input_file) != NULL) {
        // 对于每一行,使用sscanf函数从字符串中读取两个整数和一个运算符
        int num1, num2;
        char operator;
        sscanf(line, "%d %c %d", &num1, &operator, &num2);
        // 计算表达式的结果
        int result;
        if (operator == '+')
                result = num1 + num2; else if (operator == '-')
                result = num1 - num2; else if (operator == '*')
                result = num1 * num2; else if (operator == '/')
                result = num1 / num2;
        // 如果结果不合法,则将题号和原因写入输出文件
        if (result < 0 || result > 100 || (operator == '/' && num2 == 0)) {
            line_num++;
            if (result < 0)
                        fprintf(output_file, "(%d) 结果为负数\n", line_num); else if (result > 100)
                        fprintf(output_file, "(%d) 结果超过100\n", line_num); else if (operator == '/' && num2 == 0)
                        fprintf(output_file, "(%d) 除数为0\n", line_num);
        }
    }
    // 关闭文件
    fclose(input_file);
    fclose(output_file);
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632