一道题目要定义N个数组,而这N时用户输入,那怎么定义出这N个数组呢(注意:n不是元素个数而是数组个数)
用malloc函数。。。。
比如你要申请int型的未知个数数组。可以以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{
int *p;
int n;
printf("请输入录入个数N:\n");
scanf("%d",&n);
p = (int *)malloc(n*sizeof(int));
//然后把*p当作数组指针用就可以了。。~~~~
}
比如你要申请int型的未知个数数组。可以以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{
int *p;
int n;
printf("请输入录入个数N:\n");
scanf("%d",&n);
p = (int *)malloc(n*sizeof(int));
//然后把*p当作数组指针用就可以了。。~~~~
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-04-24
#include<stdio.h>
#include<malloc.h>
void main()
{
int N,n,i,j=0;
printf("请输入你所创建的数组的个数是:");
scanf("%d",&N);
printf("请输入你所创建的数组的大小:");
scanf("%d",&n);
int* *p=(int* *)calloc(N,sizeof (int *));
for(i=0;i<N;i++)
{
*(p+i)=(int*)calloc(n,sizeof(int));
}
for(i=0;i<N;i++)
{
printf("请输入第%d个数组:",i+1);
for(j=0;j<n;j++)
scanf("%d",&p[i][j]);
printf("\n");
}
for(i=0;i<N;i++)
{
for(j=0;j<n;j++)
printf("%d ",*(*(p+i)+j));
printf("\n");
}
}
自己看先,可以查阅calloc函数用法。
#include<malloc.h>
void main()
{
int N,n,i,j=0;
printf("请输入你所创建的数组的个数是:");
scanf("%d",&N);
printf("请输入你所创建的数组的大小:");
scanf("%d",&n);
int* *p=(int* *)calloc(N,sizeof (int *));
for(i=0;i<N;i++)
{
*(p+i)=(int*)calloc(n,sizeof(int));
}
for(i=0;i<N;i++)
{
printf("请输入第%d个数组:",i+1);
for(j=0;j<n;j++)
scanf("%d",&p[i][j]);
printf("\n");
}
for(i=0;i<N;i++)
{
for(j=0;j<n;j++)
printf("%d ",*(*(p+i)+j));
printf("\n");
}
}
自己看先,可以查阅calloc函数用法。
第2个回答 2010-04-24
你可以定义一个二维数组嘛
这样
int N;
int array[N][20];
这样这个二维数组的每一行都是一个一维数组
这样
int N;
int array[N][20];
这样这个二维数组的每一行都是一个一维数组
第3个回答 2010-04-24
可以用new,
1.....new int[n][20];
2.for(int i=0;i<n;i++) //...new int[20]
1.....new int[n][20];
2.for(int i=0;i<n;i++) //...new int[20]