| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 829 人关注过本帖
标题:看个程序,while循环
只看楼主 加入收藏
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
 问题点数:0 回复次数:7 
看个程序,while循环

#include <stdio.h>
#include <stdlib.h>

main()
{
int *p;
p=(int*)malloc(100*sizeof(int));
while(scanf("%ld",p)!=-1) p++;
while(*p!=-1)
{
printf("%d ",*p);
p++;
}
}

第一次循环怎么结束不了,无限死循环了好像。。。

搜索更多相关主题的帖子: int include main malloc 
2006-10-16 12:25
编程新贵
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-8-11
收藏
得分:0 
以下是引用black0fish在2006-10-16 12:25:45的发言:

#include <stdio.h>
#include <stdlib.h>

main()
{
int *p;
p=(int*)malloc(100*sizeof(int));
while(scanf("%ld",p)!=-1) p++; //这句什么意思,楼主是不是想输入-1然后跳出循环?
while(*p!=-1)
{
printf("%d ",*p);
p++;
}
}

第一次循环怎么结束不了,无限死循环了好像。。。

scanf是无返回值的函数,怎么可以用来做判断呢?不要说死循环,连循环都不可能执行啊

[此贴子已经被作者于2006-10-16 13:07:01编辑过]

2006-10-16 13:01
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

改成这样
#include <stdio.h>
#include <stdlib.h>

int main()
{
int *p;
p=(int*)malloc(100*sizeof(int));
scanf("%ld",p);
while(*p!=-1)
{ p++;
scanf("%ld",p);
printf("%d ",*p);
}
return 0;
}


谁有强殖装甲第二部,可以Q我460054868
2006-10-16 16:32
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用C语言学习者在2006-10-16 16:32:25的发言:

改成这样
#include <stdio.h>
#include <stdlib.h>

int main()
{
int *p;
p=(int*)malloc(100*sizeof(int));
scanf("%ld",p);
while(*p!=-1)
{ p++;
scanf("%ld",p);
printf("%d ",*p);
}
return 0;
}

那个l是干什么的?
还有你不怕你申请的空间被用完吗(最多只能输入100个数)?
申请的空间释放了吗?


2006-10-16 20:09
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
先谢谢我不是郭靖提醒,我只实现它能执行,忘了其它。

谁有强殖装甲第二部,可以Q我460054868
2006-10-16 20:23
xixigzcn
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-9-2
收藏
得分:0 

只要scanf的值为-1就可以结束循环

在输入参数的时候你输入 ctrl+z就可以结束循环了

2006-10-16 20:31
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用black0fish在2006-10-16 12:25:45的发言:

#include <stdio.h>
#include <stdlib.h>

main()
{
int *p;
p=(int*)malloc(100*sizeof(int));
while(scanf("%ld",p)!=-1) p++;
while(*p!=-1)
{
printf("%d ",*p);
p++;
}
}

第一次循环怎么结束不了,无限死循环了好像。。。

一般用于文件输入.在这里你输入的数据它会接收所以导致死循环.(输入不能终止)


倚天照海花无数,流水高山心自知。
2006-10-16 22:32
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
得分:0 
恩,知道了,谢谢各位:)
2006-10-17 09:01
快速回复:看个程序,while循环
数据加载中...
 
   



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

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