90求助!!#2 wa
查看原帖
90求助!!#2 wa
1080550
Jillll楼主2023/9/21 16:25
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>

void Add(char former[], char latter[]) {
    printf("%s+%s=%d\n", former, latter, (int)(atoi(former) + atoi(latter))); // 使用 atoi 转换字符串为整数
    int len1 = strlen(former), len2 = strlen(latter);
    int len3 = snprintf(NULL, 0, "%d", atoi(former) + atoi(latter)); // 计算数字转换后的长度
    printf("%d\n", len1 + len2 + len3 + 2);
}

void Sub(char former[], char latter[]) {
    printf("%s-%s=%d\n", former, latter, (int)(atoi(former) - atoi(latter)));
    int len1 = strlen(former), len2 = strlen(latter);
    int len3 = snprintf(NULL, 0, "%d", atoi(former) - atoi(latter));
    printf("%d\n", len1 + len2 + len3 + 2);
}

void Mul(char former[], char latter[]) {
    printf("%s*%s=%d\n", former, latter, (int)(atoi(former) * atoi(latter)));
    int len1 = strlen(former), len2 = strlen(latter);
    int len3 = snprintf(NULL, 0, "%d", atoi(former) * atoi(latter));
    printf("%d\n", len1 + len2 + len3 + 2);
}

void Select(char type, char former[], char latter[]) {
    switch(type) {
        case 'a' :
            Add(former, latter);
            break;
        case 'b' :
            Sub(former, latter);
            break;
        case 'c' :
            Mul(former, latter);
            break;
    }
}

int main() {
    int i = 0, flag = 1;
    scanf("%d", &i);
    char type;
    char former[51], latter[51];
    char prevtype = 'a';
    for (int tot = 0; tot < i; tot++) {
        if (flag) {
            scanf(" %c %s %s", &type, former, latter); // 加入空格,跳过空白字符
            flag = 0;
            prevtype = type;
            Select(type, former, latter);
            continue;
        }
        if (scanf(" %c", &type) && isalpha(type)) {
            scanf(" %s %s", former, latter);
            Select(type, former, latter);
        } else {
            ungetc(type, stdin); // 将不符合格式的数据退回
            scanf(" %s %s", former, latter);
            Select(prevtype, former, latter);
        }
    }

    return 0;
}
2023/9/21 16:25
加载中...