#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拼错了,这代码根本都编译不了,哪里来的“调试”