| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1425 人关注过本帖
标题:怎么判断输入的结束
只看楼主 加入收藏
xiaona521
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-23
收藏
 问题点数:0 回复次数:14 
怎么判断输入的结束
要求 标准输入一组数,存放到动态数组,动态数组第一个元素代表数字个数

小弟的想法是,首先动态申请一个int字节内存,存个数,然后循环输入数字,循环申请int字节内存
问题是 我试了好多方法,始终写不出正确的判断输入结束的语句,望指教!谢了
搜索更多相关主题的帖子: 结束 判断 输入 
2006-12-05 21:21
xiaona521
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-23
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>
void main()
{
int *p=NULL,m=0;
int i=0,n=0;
p=(int *)malloc(sizeof(int));
*p=0;
p++;

while('EOF'!=scanf("%d",&m)) // 判断输入的结束 就在这不知道怎么写 请指教
{
p=(int *)malloc(sizeof(int));
*p=m;
n++;
p++;
}
for(i=0;i<=n;i++) //让P指向数组起点
{
p--;
}
for(i=0;i<n;i++)
{
printf("%d ",*(p+i));
}

free(p);

}


2006-12-05 21:35
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

有点不明白楼主的意思.不清楚要怎样的动态.
scanf("%d",&a[0]);
for(int i=1;i<=a[0];i++)
{
scanf("%d",&a[i]);
}


倚天照海花无数,流水高山心自知。
2006-12-05 21:38
xiaona521
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-23
收藏
得分:0 
就是输入一连串的数字,然后存在一个动态数组,也许是我的想法走歪了,我只是想输入一个数字,随即在动态数组申请内存存下这个数字,再输入再申请内存,我不知道怎么结束输入。。。

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

#include <stdio.h>
#include <stdlib.h>
void main()
{
int *p=NULL,x=0,m=0;
int i=0,n=0;
p=(int *)malloc(sizeof(int));
*p=0;
p++;

while(EOF!=(scanf("%d",&m))) // 判断输入的结束 就在这不知道怎么写 请指教
{
if(x==0)
{
x=m;
}
if(n>=x)
{
break;
}
p=(int *)malloc(sizeof(int));
*p=m;
n++;
p++;
}
for(i=0;i<=n;i++) //让P指向数组起点
{
p--;
}
for(i=0;i<n;i++)
{
printf("%d ",*(p+i));
}

free(p);

}


倚天照海花无数,流水高山心自知。
2006-12-05 21:46
xiaona521
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-23
收藏
得分:0 
这个x有什么作用 看不太懂

2006-12-05 21:52
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
接收第一个数作为以后元素个数的结束标志.

倚天照海花无数,流水高山心自知。
2006-12-05 21:57
xiaona521
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-23
收藏
得分:0 
if(n>=x)
{
break;
}
元素个数n大于结束标志,跳出循环,明白斑竹的意思,关键是我开始也不知道将要输入几个数字,第一个输入的m值就是整数了,个数是我去计算,斑竹有其他好的算法么

2006-12-05 22:05
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
这个n不是计算以后要输入元素的个数吗?

倚天照海花无数,流水高山心自知。
2006-12-05 22:07
xiaona521
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-23
收藏
得分:0 
是,每输入一个数字,n自动加1,x==m,是把第一个m给x,如果按斑竹设置结束标志,此时第一个m 应该是后面将要输入的元素个数吧,题目是要求一开始输入的便是要存到动态数组的数字,个数和输入者输入有关

2006-12-05 22:14
快速回复:怎么判断输入的结束
数据加载中...
 
   



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

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