红色报错,但在我的计算机上正常

P1957 口算练习题

bysq_ @ 2024-08-22 15:59:08

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>

int check_first_char() {
    int ch = fgetc(stdin);
    if (ch == '\n') {
        return 1;
    } else {
        ungetc(ch, stdin); // 将字符放回输入流
        return 0;
    }
}

int main() {
    int n,i,j,k;
    char ch[100],ty,end[100];
    scanf("%d",&n);
    for(i=0;i<n;i++){
        j=-8888,k=-8888;
        while(1){
            scanf("%s",ch);
            if(isalpha(ch[0])){//1 是字母
                ty = ch[0];
            }
            else{
                if(j==-8888){
                    j=atoi(ch);
                }
                else{
                    k=atoi(ch);
                }
            }
            if(check_first_char()==1){
                break;
            }
        }
        if(ty=='a')
            sprintf(end,"%d+%d=%d",j,k,j+k);
        else if(ty=='b')
            sprintf(end,"%d-%d=%d",j,k,j-k);
        else
            sprintf(end,"%d*%d=%d",j,k,j*k);
        printf("%s\n%d\n",end,strlen(end));
            }
    printf("%s",ch);
    return 0;
}

提交之后一片红,但是在我的计算机是正常而且答案也是正确


|