谁帮我讲下这道题呀 C语言

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:57:21
以下程序的输出结果是 v1=4,v2=7,v3=5,v4=8

main()
{ char *s="12134211";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ case '1': v1++;
case '3': v3++;
case '2': v2++;
default: v4++;
}
printf("v1=%d, v2=%d, v3=%d, v4=%d\n",v1,v2,v3,v4);
}

/* HELLO.C -- Hello, world */

#include "stdio.h"
#include "conio.h"

main()
{ char *s="12134211";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ case '1': v1++;break; //加个break;
case '3': v3++; break;
case '2': v2++;break;
default: v4++;
}
printf("v1=%d, v2=%d, v3=%d, v4=%d\n",v1,v2,v3,v4);
getch();
}
/*
程序switch 每个后面都要加break 否则会继续执行
*/

谭浩强C语言教程全书 Word版
http://bbs.topsage.com/dispbbs_121_171227_1.html

要点case语句后没有break语句,下面的语句都要执行
就是假如case '1'的情况满足,四个变量都要自增1。
各种条件下运行结果如下
'1',v1 v2 v3 v4 都要加1
'2',v2 v4 要加1
'3',v2 v3 v4 要加1
'4',v4 加1
12134211中共有'1'4个,'2'2个,'3'1个,'4'1个
结果v1=