标题:小弟有求
只看楼主
nanchangdaxu
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-4-30
得分:0 
你这个错误呀太多了,好好看看基本的东西吧

世上无难事,只要肯登攀!
2007-05-06 15:13
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
大哥,这是考题啊,现在考题不都这样吗?
let me show you!!!!!!!
#include <stdio.h>
main()
{
int a=0,i;
for(i=;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
-----------------------------------------------------------------------------------------------------------------------------------------
循环5次: 1 2 3 4 5
a: 0->2->5=>10 10->13->18 18->20->23->28 28->33 33->38
run all case run 1,2,dflt run3,1,2,dflt run dflt run dflt
i: 0 1 2 3 4

the end--------38.
---------------这个题目我想是要培养你对swith下的break的重视吧.(今天我查的,不然也忘了)

偶是菜鸟鸟偶惧WHO?!!!!
2007-05-06 16:37
zy1437zy
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-4-25
得分:0 
以下是引用我是菜鸟哦在2007-5-6 16:37:56的发言:
大哥,这是考题啊,现在考题不都这样吗?
let me show you!!!!!!!
#include <stdio.h>
main()
{
int a=0,i;
for(i=;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
-----------------------------------------------------------------------------------------------------------------------------------------
循环5次: 1 2 3 4 5
a: 0->2->5=>10 10->13->18 18->20->23->28 28->33 33->38
run all case run 1,2,dflt run3,1,2,dflt run dflt run dflt
i: 0 1 2 3 4

the end--------38.
---------------这个题目我想是要培养你对swith下的break的重视吧.(今天我查的,不然也忘了)

如果对i不附初值的话,
他将是一个随机数,你的for 循环是有可能不执行的,

所以原题是有错的
没有固定结果!~

2007-05-06 19:21
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
得分:0 
i少打0了

偶是菜鸟鸟偶惧WHO?!!!!
2007-05-06 19:48
love52657
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-5-4
得分:0 
那应该是从零开始啊~~~~~~~~~``

我 为 C 狂
2007-05-06 20:03
tig2
Rank: 2
等 级:论坛游民
帖 子:57
专家分:45
注 册:2007-4-11
得分:0 
main()
{
int a=0,i;
for(i=0;i<5;i++)
{
switch (i)
{
case 0:
case 1:
case 2:a+=3;break;
case 3:a+=2;break;
default:a+5;break;
}
}
printf("%d\n",a);
getch();
}

小弟这个不知道什么原因结果却是11?那位大侠说一下?谢谢!
2007-05-07 00:27
abcd5200
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2007-4-18
得分:0 
以下是引用tig2在2007-5-7 0:27:03的发言:
main()
{
int a=0,i;
for(i=0;i<5;i++)
{
switch (i)
{
case 0:
case 1:
case 2:a+=3;break; /* 当i=0.1.2时,a=3+3+3=9 */
case 3:a+=2;break; /* 当i=3时,a=9+2=11 */
default:a+5;break; /* 当i=4时,这里的a+5,不是赋值,a还是11.*/
}
}
printf("%d\n",a);
getch();
}

小弟这个不知道什么原因结果却是11?那位大侠说一下?谢谢!


*┊..除了睡觉..还是想睡觉..┊*
2007-05-07 01:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-135327-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014631 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved