#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++;
}
}
第一次循环怎么结束不了,无限死循环了好像。。。
----------------解决方案--------------------------------------------------------
#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编辑过]
----------------解决方案--------------------------------------------------------
改成这样
#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;
}
----------------解决方案--------------------------------------------------------
改成这样
#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个数)?
申请的空间释放了吗?
----------------解决方案--------------------------------------------------------
先谢谢我不是郭靖提醒,我只实现它能执行,忘了其它。
----------------解决方案--------------------------------------------------------
只要scanf的值为-1就可以结束循环
在输入参数的时候你输入 ctrl+z就可以结束循环了
----------------解决方案--------------------------------------------------------
#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++;
}
}
第一次循环怎么结束不了,无限死循环了好像。。。
一般用于文件输入.在这里你输入的数据它会接收所以导致死循环.(输入不能终止)
----------------解决方案--------------------------------------------------------
恩,知道了,谢谢各位:)
----------------解决方案--------------------------------------------------------