求问
查看原帖
求问
518159
0010ss楼主2021/6/16 09:40
#include <cstdio>
#include <cstring>
int main(){
    int n, a, b, c;
    char last, s[20], ans[20];
    scanf("%d\n", &n);
    printf("\n");
    while(n--){
        fgets(s, sizeof(s), stdin);
        if(s[0] == 'a' ^ s[0] == 'b' ^ s[0] == 'c'){
            last = s[0], s[0] = ' ';
        }
        printf("%s", s);
        sscanf(s, "%d %d", &a, &b);
        switch(last){
            case 'a': c = a + b; sprintf(ans, "%d+%d=%d", a, b, c); break;
            case 'b': c = a - b; sprintf(ans, "%d-%d=%d", a, b, c); break;
            case 'c': c = a * b; sprintf(ans, "%d*%d=%d", a, b, c); break;
        }
        printf("%s\n%d\n", ans, strlen(ans));
    }
    return 0;
}

这一段是深基上的代码,请问第11行中,为什么在判断符号后要把s[0]转换成空格,如下

last = s[0], s[0] = ' ';

2021/6/16 09:40
加载中...