感觉没有错 是哪个关键的概念没有掌握到吗
#include<stdio.h> double * add(double a[],double b[],int i,int j);
int max(int i,int j);
int main()
{
int i,j,k;
double *p;
printf("请输入两个数组的大小:");
scanf("%d %d",&i,&j);
double a[i];
double b[j];//定义两个输入大小的数组
printf("请输入第一个数组的元素:");
for(k=0;k<i;k++)
scanf("%lf",&a[k]);
printf("请输入第二个数组的元素:");
for(k=0;k<j;k++)
scanf("%lf",&b[k]);//键入两个数组的元素
p=add(a,b,i,j); //得到两个数组元素相加后的数组的首地址
k=max(i,j);//得到max
printf("两个数组对应元素相加之后的值为:");
for(int m=0;m<k;m++)
printf("%.2lf ",*p++);//输出新的数组的元素
return 0;
}
double * add(double a[],double b[],int i,int j)
{
int min,max;
int m,n;
if(i>j)
{
min=j;
max=i;
}
else
{
min=i;
max=j;
} //得到max和min
double c[max];// 定义一个max的数组
for(m=0;m<min;m++)
{
c[m]=a[m]+b[m];
} //在min内得到两个数组元素的和
for(m=min;m<max;m++)
{
if(min==j)
c[m]=a[m];
else
c[m]=b[m];
} //在max到min内得到长的那个数组的元素
return c;//返回定义的数组的首地址
}
int max(int i,int j)//得到max
{
int k;
if(i<j)
k=j;
else
k=i;
return k;
}