c语言 如何从键盘中输入若干个数保存到数组中

如题所述

1、首先在电脑中打开编译器(vc++6.0),新建一个将1到100保存到数组中项目,如图所示。

2、添加一个 assignment.c 文件,如图所示。

3、包含stdio.h和stdlib.h头文件,如图所示。

4、输入main函数主体及返回值,如图所示。

5、定义一个char数组,长度为100,最后使用while循环进行赋值,如图所示,就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-11

程序代码:

#include<stdio.h>

#define N 10

int main()

{int a[N]={0};

int i=0;

for(i=0;i<N;i++)

{scanf("%d",&a[i]);}

for(i=0;i<N;i++)

{printf("%d ",a[i]);}

return 0;

扩展资料:

C语言中数组的输入和存放可通过scanf()函数来实现。首先要定义一个数组a[],根据需要定义数组类型,必须定义数组长度,可使用宏定义#define N 10来定义数组长度,方便在修改,也可直接定义为a[10];通过for循环依次将数据存入数组,键盘输入时数据之间以空格间隔。

数据存入数组后可进行调用,这里以printf()函数调用输出为例,输出格式要记得加空格使数据隔开,避免数据连在一起。

本回答被网友采纳
第2个回答  推荐于2017-10-11

从键盘输入若干数据到数组中,可选用的方法:

    预估最大数据个数,按此数值定义数组空间,完成数据输入

    #define MAX_NUM 1000

    int a[MAX_NUM];  这种方法定义数组,方便,安全。缺陷是数组空间大小受系统限制,数据太多了,就不能这样定义了。

    运行时,确定输入数据个数,采用指针动态定义数组,或C99提供的动态数组的方法实现

    int *p;

    int n;  printf ("input n: "); scanf("%d", &n); //输入数据个数

    (1)p=(int *)malloc(n*sizeof(int) ); //动态分配空间    不用了记得要释放free(p)

    或  

    (2)int pa[n] ;  //C99支持的动态数组,按n值动态定义数组

    还可以采用指针动态扩充数组方法:先分配一定的大小,当数组不够用时,再重新分配空间。

    #define INIT_LEN 100        预分配空间

    #define INCE_LEN 10         每次扩充空间

    int *p=(int *) malloc(INIT_LEN *sizeof(int) );

    int length=INIT_LEN ;

    不足时, length+=INCE_LEN ;  p=(int *)realloc( p, length) ; //扩充空间

第3个回答  推荐于2017-10-08
int a[100],i=0;
while(scanf("%d",&x)!=EOF)
{
a[i]=x;

i++;

}//这样是输入文件结束后停止输入
或者是
int a[100],i=0;
while(scanf("%d",&x)!=-1)
{
a[i]=x;
i++;
}//这样的话就是输入-1时停止输入追问

不能有啊a[100],要任意多少个数,输入多少个数。a[n]中的n就是多少?

追答

骚年,这是不可能滴,计算机内存是有限的,数组只能定义一个固定值,不然的话要用链表(虽然也不可以输无限多个数)。像这种问题,一般都是这么写的
#define MAXSIZE 10000 //在这里定义大小,以后修改会方便点
int a[MAXSIZE],i=0;
while(scanf("%d",&x)!=-1)
{
a[i]=x;
i++;
}
数组大小定义好像是最大可以定义几百万吧,你把MAXSIZE 定义为10000 ,基本就不会越界了

本回答被提问者采纳
第4个回答  2012-11-19
输入N 以后,都动态开个数组。也可以建个链表模拟数组,随意加人一个元素,要返回某个元素,可以用个函数来代替
相似回答