一些代码的调试问题。。。

#include

#include

void main() {

int  k;

char  s[] = "ABCCDA", c;

for (k = 1;(c = s[k]) != '\0';k++) {

    switch (c) {

    case'A':putcahr('%');continue;
    case'B':++k;break;
    default:putchar('*');
    case'C':putchar('&');continue;


    }

    putchar('#');
}

system("pause");

}

帮你修改了代码,应该没问题了,望采纳。

#include<stdio.h>
#include<windows.h>

int main() {
int  k;

char  s[] = "ABCCDA", c;

for (k = 1;(c = s[k]) != '\0';k++) {

    switch (c) {

    case'A':putchar('%');continue;
    case'B':++k;break;
    default:putchar('*');
    case'C':putchar('&');continue;


    }

    putchar('#');
}

system("pause");
}

刚才没看到,关于输出的问题这里做个解释:
首先K值为1,就是从B开始,将k的数值加1后跳出switch,打印#;
再到for循环,k值再加1变成3,对应第二个C,打印&,continue直接执行for循环;
接下来是D,对应default,打印*,后面没有任何退出语句,执行下一条case打印&
最后打印A所对应的%,程序结束。

然后你的问题是什么呢

图片说明

图片说明

putchar拼错了,这代码根本都编译不了,哪里来的“调试”