| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1332 人关注过本帖
标题:关于for循环的小问题
只看楼主 加入收藏
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:27 
关于for循环的小问题
for(i=0;a[i]!='\n';i++)
printf(.........)
照理说当a[i]='\n'时跳出循环执行printf语句,然后结束,但为什么实际操作时是当a[i]='\n'时执行printf语句,但之后又继续执行for语句啊
谢谢
2010-09-29 10:35
红色警戒
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:19
帖 子:444
专家分:2967
注 册:2005-11-20
收藏
得分:0 
不会有这问题,估计是你a[i]里不是'\n'

2010-09-29 11:09
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:0 
#include <stdio.h>
void main{
  char a[10]="abcd\nefg";
  int i;
  for(i=0;a[i]!='\n';i++)
    printf("%c",a[i]);
  printf("\n");
}
输出abcd,并没有你说的问题.要不把你写的内容帖出看看.

帮人《---》帮己
2010-09-29 11:25
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
回复 2楼 红色警戒
是这样的
main()
{
char a[4];
int i;
for(i=0;a[i]!='\n';i++)
 {
  scanf("%c",&a[i]);
  printf("%c",a[i]);
 }
}
........

[ 本帖最后由 zzgzzg00 于 2010-9-29 11:40 编辑 ]

粗心是大敌
2010-09-29 11:27
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 


main()
{
char a[4];
int i;
for(i=0;a[i]!='\n';i++)
{
  scanf("%c",&a[i]);
  printf("%c",a[i]);你这错误,当条件不满足时,你这条件会继续循环。。。。。。。。。
}
}
........

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-29 12:03
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:0 
用这个for(i=0;a[i]!='\r'&&i<4;i++)就好了

帮人《---》帮己
2010-09-29 12:09
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
我是想达到这样的情况
main()
{
char a[4];
int i;
for(i=0;i<=3;i++)
{
  scanf("%c",&a[i]);
  if(a[i]=='\n')
  break;
  printf("%c",a[i]);
}
}
但是4楼的我给的那个代码不能实现啊,哪位大侠有空帮忙运行一下吧,实在是搞不懂了,4楼的代码在输入回车后会在未按alt+f5情况下就显示printf结果,而且只要输入的字符不是4个就继续运行循环语句就是假如我输入
abc+回车
则屏幕立刻显示
abc,但并不跳出,等待再次输入,直到我输入abcd(4个字符)才跳出for语句
6楼的兄弟可不可以说的详细点啊,不是很明白呢 谢谢
按7楼的兄弟的方法改了还是不行啊   呵呵

粗心是大敌
2010-09-29 14:38
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
好像明白了,是不是这样啊
main()
{
char a[4];
int i;
for(i=0;a[i]!='\n';i++) 此时的意思是只要a[i]!='\n'就执行scanf("%c",&a[i]);而当a[i]='\n'时执行printf("%c",a[i]);并不跳出循环(好像也不对
{
  scanf("%c",&a[i]);
  printf("%c",a[i]);
}
}

粗心是大敌
2010-09-29 14:46
xuexibianc
Rank: 2
等 级:论坛游民
帖 子:35
专家分:34
注 册:2010-9-8
收藏
得分:0 
好像字符中没有\n,只有字符串才有的
2010-09-29 15:33
Alen_BJ
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2010-9-29
收藏
得分:0 
飘过 不语
2010-09-29 15:38
快速回复:关于for循环的小问题
数据加载中...
 
   



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

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