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

来源:互联网 发布:网络域名怎么注册 编辑:程序博客网 时间:2024/05/01 22:01
<pre name="code" class="plain"><pre name="code" class="plain"><img src="http://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'的情况下会结束程序。
                                             
0 0
原创粉丝点击