中易网

C语言中如何给一个数组输入一组总数未知的数

答案:2  悬赏:40  
解决时间 2021-03-09 23:47
C语言中如何给一个数组输入一组总数未知的数
最佳答案
首先要先定义一个足够大的数组,然后利用scanf的返回值来确定输入结束。
scanf的返回值是实际输入数值的个数。
比如输入整型数值时,scanf("%d",&a);如果输入a成功,那么返回值会是1。
按照这个思路,可以编写输入整型数组的代码如下:
#include 
#define MAX_INPUT 100 //假定最大可以输入100个数
int input(int *a)//a为要输入的数组,返回值为实际输入个数。
{
    int i;
    
    for(i = 0; i < MAX_INPUT; i ++)
        if(scanf("%d",&a[i])!=1) break;//输入并判断
    return i;//返回输入总数
}

int main()
{
    int a[MAX_INPUT];
    int n,i;
    
    n = input(a);
    printf("共计输入%d个数值
", n);
    for(i = 0; i < n; i ++)//输出之前输入的数值以验证。
        printf("%d
", a[i]);
        
    return 0;
}除此之外,还有一种比较常见的应用是约定了数据规模,然后约定某一个不在其规模内的数值,作为输入结束标志。

比如输入若干个整型的分数值,作为分数值一定是非负整数,所以可以约定当输入-1时结束。
这类代码可以编写为:
#include 
#define MAX_INPUT 100 //假定最大可以输入100个数
int input(int *a)//a为要输入的数组,返回值为实际输入个数。
{
    int i;
    
    for(i = 0; i < MAX_INPUT; i ++)
    {
        scanf("%d",&a[i]);
        if(a[i] == -1) break;//当检测到输入结束标志时结束输入。
    }
    return i;//返回输入总数
}

int main()
{
    int a[MAX_INPUT];
    int n,i;
    
    n = input(a);
    printf("共计输入%d个数值
", n);
    for(i = 0; i < n; i ++)//输出之前输入的数值以验证。
        printf("%d
", a[i]);
        
    return 0;
}
全部回答
我暂时保留我的看法!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
把一个正方体木块削成一个最大圆锥。已知正方
鑫朋沐足在哪里啊,我有事要去这个地方
一个异性朋友说想见我,他是什么意思?
一楼到十楼的每层电梯门口都放着一颗钻石,钻
永欣内衣地址在哪,我要去那里办事
关于男生纹理烫后期保养的问题
成人大专需要考试吗,费用是多少
华夏收藏网的在线拍卖资格是如何?
平菇怎么做营养价值好
我在淘宝都买了几万块钱的东西了为啥还是v2会
摩羯女说你厉害是在夸你还是讽刺你,
山西友信五菱宝骏4S店我想知道这个在什么地方
在输电线路中,为了减少电能的损耗,输电导线应
谈恋爱一年,跟男友都是初恋,发生了关系,他
摩利支天和 毗沙门天哪个在佛教中的地位高一
推荐资讯
请问这是虎牙吗,是上面还是下面的?谢谢
叉车前桥和汽车后桥有什么辨别
雪纺裙会不会被链条包刮坏
2017年成都理工大学录取分数线是多少
为什么我百度云卸载后重新装上登录后许多文件
我家猫咪这几天声音突然变得沙哑,没精神了。
look at my dab 什么意思
如图,在四边形ABCD中,点H是BC的中点,作射
新形象美容美发中心地址好找么,我有些事要过
上海工程技术大学研究生导师怎么选?
爱情是一种感觉还是一种依赖?
把阳台装成小木屋好看吗
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?