swtich语句那为啥总是报错??

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

int main()
{
    int n,x,y;
    char ss[10],ans[50],k;
    scanf("%n", &n);

    for(int i = 0; i < n; i++){
        scanf("%s", ss);
        if(isalpha(ss)){
            k = ss;
            scanf("%d%d", &x, &y);
        }else{
            x = ss - '0';
            scanf("%d", &y);
        }

        swtich(k){
        case 'a':
            sprintf(ans, '%d+%d=%d', x, y, x+y);
            printf("\n%d\n",strlen(ans));
            break;
        case 'b':
            sprintf(ans, '%d-%d=%d', x, y, x-y);
            printf("\n%d\n",strlen(ans));
            break;
        case 'c':
            sprintf(ans, '%d*%d=%d', x, y, x*y);
            printf("\n%d\n",strlen(ans));
            break;
        }


    }
    return 0;
}


修改如下,供参考:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main()
{
    int n, x, y;
    char ss[10], ans[50], k;
    //scanf("%n", &n);
    scanf("%s", ss);
    for (int i = 0; ss[i]; i++) {   //for (int i = 0; i < n; i++)
        
        if (isalpha(ss[i])) {
            k = ss[i];
            scanf("%d%d", &x, &y);
        }
        else {
            x = ss[i] - '0';
            scanf("%d", &y);
        }
        switch(k) {  //swtich(k) {
        case 'a':
            sprintf(ans, " % d + % d = % d", x, y, x + y);  //sprintf(ans, '%d+%d=%d', x, y, x+y);
            printf("\n%d,%s\n", strlen(ans),ans); //printf("\n%d\n",strlen(ans));
            break;
        case 'b':
            sprintf(ans, " % d - % d = % d", x, y, x - y); // sprintf(ans, '%d-%d=%d', x, y, x-y);
            printf("\n%d,%s\n", strlen(ans),ans); //printf("\n%d\n",strlen(ans));
            break;
        case 'c':
            sprintf(ans, " % d * %d = % d", x, y, x * y); // sprintf(ans, '%d*%d=%d', x, y, x*y);
            printf("\n%d,%s\n", strlen(ans),ans); //printf("\n%d\n",strlen(ans));
            break;
        default:break;  //修改
        }
    }
    return 0;
}

有没有一种可能,是你的switch拼错了?

img

而且你的代码问题好像还不止这个。 isalpha这个函数我还没学,但是VS提示它接收的参数是int类型的,你传入的是一个char数组,肯定是不得行的。

img

然后k是char类型,并不是指针,无法把数组名赋值给k