#include <stdio.h>
#define NUM 2
void showARR(double *a[NUM], int line, int count);//打印数组
void inputARR(double *a[NUM], int line, int count);//输入数组元素
void copyARR(double *source, double *target, int n);//数组复制
int main(void)
{
double text[NUM][NUM] ={0.};
double text2[NUM][NUM] = {0.};
inputARR(text, NUM, NUM);
showARR(text, NUM, NUM);
copyARR(text, text2, NUM);
showARR(text, NUM, NUM);
return 0;
}
void showARR(double *a[NUM], int line, int count)
{
for(int i = 0; i<line-1; i++)
{
for(int j = 0; j<count-1; j++)
{
printf("第%d行第%d个数据是%.2f",i+1,j+1,a[i][j]);
}
putchar('\n');
}
putchar('\n');
}
void inputARR(double *a[NUM], int line, int count)
{
for(int i = 0;i<line-1; i++)
{
for(int j = 0; j<count-1; j++)
{
printf("请输入第%d行第%d个数据:",i+1,j+1);
scanf("%lf",*a);
(*a)++;
}
a++;
}
}
void copyARR(double *source, double *target, int n)
{
for(int i = 0; i<n; i++)
{
target[i] = source[i];
}
}
编译通过 程序运行时输入第一个元素就内存不能读取错误-。-
求解
#define NUM 2
void showARR(double *a[NUM], int line, int count);//打印数组
void inputARR(double *a[NUM], int line, int count);//输入数组元素
void copyARR(double *source, double *target, int n);//数组复制
int main(void)
{
double text[NUM][NUM] ={0.};
double text2[NUM][NUM] = {0.};
inputARR(text, NUM, NUM);
showARR(text, NUM, NUM);
copyARR(text, text2, NUM);
showARR(text, NUM, NUM);
return 0;
}
void showARR(double *a[NUM], int line, int count)
{
for(int i = 0; i<line-1; i++)
{
for(int j = 0; j<count-1; j++)
{
printf("第%d行第%d个数据是%.2f",i+1,j+1,a[i][j]);
}
putchar('\n');
}
putchar('\n');
}
void inputARR(double *a[NUM], int line, int count)
{
for(int i = 0;i<line-1; i++)
{
for(int j = 0; j<count-1; j++)
{
printf("请输入第%d行第%d个数据:",i+1,j+1);
scanf("%lf",*a);
(*a)++;
}
a++;
}
}
void copyARR(double *source, double *target, int n)
{
for(int i = 0; i<n; i++)
{
target[i] = source[i];
}
}
编译通过 程序运行时输入第一个元素就内存不能读取错误-。-
求解



