| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1081 人关注过本帖
标题:[问题已解决][求助]关于退出循环
只看楼主 加入收藏
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
“char *s="121" ;可以得到 s[0]=1,s[1]=2,s[2]=1 是这样吗???”
经过我的验证 是着样的
main()
{
char *s="121";
printf("%c,%c,%c",s[0],s[1],s[2]);
getch();
}
输出 1,2,1
当你不会着种问题的时候 可以自己写个小程序来 验证一下嘛~!

羊肉串 葡萄干 哈密瓜!!
2006-07-18 23:52
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用mp3aaa在2006-7-18 23:38:44的发言:
#include <stdio.h>
main()
{char *s="121" ;
int k=0,a=0,b=0;
do { k++;
if(k%2==0){a=a+s[k]-'0'; countinue;}
b=b+s[k]-'0';a=a+s[k]-'0';
}
while(s[k+1]);
printf("k=%d a=%d b=%d\n",k,a,b);
}
IF不是循环啊?

do
循环体语句
while(表达式);


人生没有彩排,每天都是现场直播~~~
2006-07-18 23:54
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用mp3aaa在2006-7-18 23:52:55的发言:
“char *s="121" ;可以得到 s[0]=1,s[1]=2,s[2]=1 是这样吗???”
经过我的验证 是着样的
main()
{
char *s="121";
printf("%c,%c,%c",s[0],s[1],s[2]);
getch();
}
输出 1,2,1
当你不会着种问题的时候 可以自己写个小程序来 验证一下嘛~!

恩,接受建议
getch();好象不需要吧



[此贴子已经被作者于2006-7-19 0:04:59编辑过]


人生没有彩排,每天都是现场直播~~~
2006-07-18 23:59
摄政王:多尔滚
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-7-9
收藏
得分:0 
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
char *s = "121" ;
int k = 0, a = 0, b = 0;

do
{
k++; // first k = 1, second k == 2

if(k % 2 == 0) // first not execute, second execute
{
a = a + s[k] - '0'; // a = 3
countinue;
}

b = b + s[k] - '0'; // b = 0 + s[1] - '0', b = 2
a = a + s[k] - '0'; // a = a + s[1] - '0', a = 2
}while(s[k + 1]); // first s[k + 1] = 2, so continue loop

printf("k = %d a = %d b = %d\n",k,a,b);

exit(0); // k = 2 a = 3 b = 2
}

19世纪是火车的时代,20世纪是汽车的时代,21世纪是网络的时代。有谁不同意?
2006-07-19 00:04
摄政王:多尔滚
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-7-9
收藏
得分:0 
first learn coding canon

19世纪是火车的时代,20世纪是汽车的时代,21世纪是网络的时代。有谁不同意?
2006-07-19 00:04
摄政王:多尔滚
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-7-9
收藏
得分:0 
if(k%2==0){a=a+s[k]-'0'; countinue;}

==>

continue write error

19世纪是火车的时代,20世纪是汽车的时代,21世纪是网络的时代。有谁不同意?
2006-07-19 00:09
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
What's the meaning of "coding canon"?

人生没有彩排,每天都是现场直播~~~
2006-07-19 00:14
摄政王:多尔滚
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-7-9
收藏
得分:0 
bian ma gui fan

19世纪是火车的时代,20世纪是汽车的时代,21世纪是网络的时代。有谁不同意?
2006-07-19 00:15
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用摄政王:多尔滚在2006-7-19 0:04:07的发言:
#include <stdlib.h>

#include <stdio.h>


int main(void)

{

char *s = "121" ;

int k = 0, a = 0, b = 0;


do

{


k++;
// first k = 1, second k == 2


if(k % 2 == 0) // first not execute, second execute

{

a = a + s[k] - '0'; // a = 3

countinue;

}


b = b + s[k] - '0'; // b = 0 + s[1] - '0', b = 2

a = a + s[k] - '0'; // a = a + s[1] - '0', a = 2

}while(s[k + 1]); // first s[k + 1] = 2, so continue loop


printf("k = %d a = %d b = %d\n",k,a,b);



exit(0);
// k = 2 a = 3 b = 2

}

第一次,k=0,自增后k=1,if 条件不满足,b=2 a=2 while(1)条件满足
第二次,k=1,自增后k=2, if条件满足,a=3 遇countinue结束本次循环
然后while(s[3]);因为s[3]=Null,所以跳出循环,
你想说的,是这样的吗?


人生没有彩排,每天都是现场直播~~~
2006-07-19 00:26
摄政王:多尔滚
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-7-9
收藏
得分:0 
然后while(s[3]);因为s[3]=Null,所以跳出循环,

==>
yes, but s[3] is '\0'

19世纪是火车的时代,20世纪是汽车的时代,21世纪是网络的时代。有谁不同意?
2006-07-19 00:28
快速回复:[问题已解决][求助]关于退出循环
数据加载中...
 
   



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

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