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

发布网友

我来回答

3个回答

热心网友

#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;
}

热心网友

#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;
}

热心网友

简单的话把n列的二维数组转换为n个“8838 9399”这种形式的字符串,把他们分别赋给一个指针数组(char * a[n])就行了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com