14.10.4输入无限组数据到数组的方法(数组无边界)

<pre name="code" class="plain"><pre name="code" class="plain"><img src="https://img-blog.csdn.net/20141004102238578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMTk3MDg3NDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
#include<stdio.h>
main()
{
	int *a,i=0,j,ch;
	do{
	scanf("%d",a+i);
	i++;
	}while((ch=getchar())!='\n');
	for(j=0;j<i;j++)
	{
		printf("%d ",*(a+j));
	}
	printf("\n");
}
今上午在做题的时候需要用到输出未知边界的一组数据,比如3,44,62...一串未知长度长数据
首先无边界则需要用指针定义数组,用*a;
使用for scanf函数无法break,因为scanf可以吃掉回车符,无法退出传值;
使用gets,getchar也不能解决问题;
最后采用判断回车条件在外层的方式来解决,因为把判断条件放在内层会被scanf吃掉,从而失效;
如采用for循环,则必须先判断再启动scanf,则第一个字符会被略过;
所以采用do while形式,来接收所有输入字符,也保证接收到'\n'的情况下会结束程序。
 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值