救命,C语言写的,本机测试没问题但全寄了

P1957 口算练习题

```c #include<stdio.h> #include<string.h> int main() { int n; int in1, in2, out; char calculation[50]; char conculate = '\0'; scanf("%d", &n); char ch[50][100]; int c; while ((c = getchar()) != '\n' && c != EOF); for (int i = 0; i < n; i++) { scanf("%[^\r\n]", ch[i]); int c; while ((c = getchar()) != '\n' && c != EOF); } for (int i = 0; i < n; i++) { if (ch[i][0] >= 'a' && ch[i][0] <= 'c') sscanf(ch[i], "%c %d %d", &conculate, &in1, &in2); else sscanf(ch[i], "%d %d", &in1, &in2); switch (conculate) { case 'a': { out = in1 + in2; sprintf(calculation, "%d+%d=%d", in1, in2, out); int l = strlen(calculation); printf("%s\n%d\n", calculation, l); break; } case 'b': { out = in1 - in2; sprintf(calculation, "%d-%d=%d", in1, in2, out); int l = strlen(calculation); printf("%s\n%d\n", calculation, l); break; } case 'c': { out = in1 * in2; sprintf(calculation, "%d*%d=%d", in1, in2, out); int l = strlen(calculation); printf("%s\n%d\n", calculation, l); break; } } } return 0; } ``` getchar()是用于清除一个字符,直接改成清楚一整行就可以过了,这洛谷你输入enter实际上是\r\n,我也卡了好久,太痛苦了
by carloney2 @ 2023-12-02 13:03:44


|