你说的问题是因为case如果没有用break的时候会顺次执行其后边的所有case比如a=1;switch(a){case1:printf("1\n");case2:printf("2\n");case3:printf("3\n");}会输出123所以你的问题中case1没用break,用了的话结果会不同程序问题挺多,总结一下1.一般很少用bool型做switch的判断式2.bool型变量只有1,0两个值,所以case2完全是出来打酱油的3.case不要忘了里边的break
成都创新互联服务项目包括静乐网站建设、静乐网站制作、静乐网页制作以及静乐网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,静乐网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到静乐省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
可以的。因为在之前的语句:max=min=*x;里面已经将第一个元素存储在了变量max
,min
中,如果你用p=x,只不过是把第一个元素和自己比较一下大小而已,当然for语句中的2个if语句都不会执行(应为自己和自己相等啊),不影响任何结果,for接着执行下一次循环,从第二个元素开始比较,接着就是你上述程序的步骤了。
ps:希望对你有用。
#includestdio.h
int main()
{ int x;
scanf("%d",x);
if(x%5!(x%3))
printf("%d是3的倍数,但不是5的倍数\n",x);
else
printf("%d不是3的倍数,或是5的倍数\n",x);
return 0;
}
C语言中的分支结构有三种:
1、单分支结构
单分支结构的基本形式是:
if( 条件表达式 )
{
(语句块)
}
2、双分支结构
双分支结构的基本形式是:
if( 条件表达式 )
{
语句块1;
}
else
{
语句块2;
}
3、多分支结构
多分支结构又分为:“分支结构的嵌套”与“switch语句”
(1)分支结构的嵌套的基本形式是:
if( 条件表达式 )
{
if( 条件表达式 )
{
语句块1
}
else
{
语句块2
}
}
else
{
if( 条件表达式 )
{
语句块3
}
else
{
语句块4
}
}
(2)switch语句
(2)switch语句的基本形式是:
switch(表达式)
{
case 常量1:语句1;break;
case 常量2:语句2;break;
case 常量3:语句3;break;
……
case 常量n:语句n;break;
default : 语句n+1;
}
这三种分支结构的区别在于:
1、单分支结构在满足条件时执行,不满足条件不执行;
2、在双分支结构中,如果条件表达式成立,则执行语句块1,否则,执行语句块2,所以双分支结构至少执行一次;
3、多分支结构的分支结构的嵌套中,分支结构的嵌套包含了单分支结构与双分支结构的特性,可以用单分支结构嵌套双分支结构,也可用双分支结构嵌套单分支结构,通俗的来讲就是分支结构中放入一个分支结构,当条件成立则执行分支结构中嵌套的分支结构;
4、switch语句可以理解成其他的分支结构的总和,switch集成了上述所有分支结构的特性,在有多种情况的时候才使用switch,当switch(条件)满足case 后面的常量,则执行对应的语句,若满足的条件未能匹配到对应的常量,则执行default后的语句,有default的switch语句是至少执行一次的,当然default也可省略不写,这样switch语句也可以一次都不执行。