c语言中输入两行数据,怎么写?

第一行输入 整数 n;
第二行输入n个元素,均为整形,用空格隔开

#include<stdio.h>
#include<malloc.h>
int main()
{
int i,n,*p;
scanf("%d",&n);
p=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%4d",&p[i]);
}
printf("您输入的数据有:\n");
for(i=0;i<n;i++)
{
printf("%-4d",p[i]);
}
printf("\n");
return 0;
}

追问

非常感谢,但是你能 给我讲讲
p=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
scanf("%4d",&p[i]);
}
是什么吗?希望能详细一点。

追答因为不知道你要输入几个数,所以先定义一个指向整形的指针,当你输入n之后,根据你输入的n分配内存,
p=(int*)malloc(sizeof(int)*n);//根据n分配内存,比如n为10,就分配一段能存放10个整形的                               //内存,然后就可以像数组一样调用
    for(i=0;i<n;i++)
    {
        scanf("%4d",&p[i]);//存放你输入的n个数
    }

温馨提示:答案为网友推荐,仅供参考
相似回答