用指针数组输入和输出二维数组

如题所述

#include<stdio.h>
#include<malloc.h>

#define N 4 //定义一个4列的二维数组,每一行的存储空间需要动态申请

int main()
{
int *a[3]; //声明3行的二维数组,现在是指针数组
int i,j;

for(i=0;i<3;i++)
{
a[i]=(int *)malloc(N*sizeof(int));
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
fflush(stdin);
}
}

for(i=0;i<3;i++)
{
for(j=0;j<N;j++)
printf("%d",a[i][j]);

printf("\n");
}

return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-02
#include<stdio.h>
#include <malloc.h>
int main()
{
int i,j,m,n;
float sum=0;
scanf("%d %d",&m,&n);
int **a = (int **)malloc(m*sizeof(int*));
for(i=0;i<m;i++)//输入
{
a[i]=(int *)malloc(n*sizeof(int));
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}

for(i=0;i<m;i++)//输出
{

for(j=0;j<n;j++)
{
printf("%d",a[i][j]);
}
}
/*
// int max=a[0][0];

for(i=0;i<m;i++)
{
int min=a[i][0];
for(j=0;j<n;j++)
{
sum=sum+a[i][j];

// if(max<a[i][j])
// max=a[i][j];

if(min>a[i][j])
min=a[i][j];
}
// printf("max = %d\n min = %d \n ",max,min);
printf("min = %d\n ",min);
}
*/注释部分可求找出每一行的最小值
return 0;
}
第2个回答  2012-01-02
简单的话把n列的二维数组转换为n个“8838 9399”这种形式的字符串,把他们分别赋给一个指针数组(char * a[n])就行了。
相似回答