和树上的程序几乎一模一样,结果却大相径庭
这是一个实现两个数组元素交换功能的小程序,书上定义的函数是void change(int a[],int b[],n),调用函数时用的是change(a,b,5);我只是没有设置n这一个形参,但是我在程序一开头定义了一个符号常量N=5,另外算法是一样,只有函数不一样。具体程序如下:#include<stdio.h>
#define N 5
void exchange(int a[],int b[])
{
int i,t;
for(i=0;i<N;i++)
{
t=a[i];
a[i]=b[i];
b[i]=t;
}
}
int main(void)
{
int d[N],e[N],i;
printf("请输入数组d[%d]的%d个元素:\n",N,N);
for(i=0;i<N;i++)
{
scanf("%d",&d[i]);
}
printf("请输入数组e[%d]的%d个元素:\n",N,N);
for(i=0;i<N;i++)
{
scanf("%d",&d[i]);
}
exchange(d,e);
printf("交换元素后数组d和数组e分别为:\n");
for(i=0;i<N;i++)
{
printf("%d ",d[i]);
}
printf("\n");
for(i=0;i<N;i++)
{
printf("%d ",e[i]);
}
printf("\n");
return 0;
}
我的运行结果如下:
请输入数组d[5]的5个元素:
0 1 2 3 4
请输入数组e[5]的5个元素:
5 6 7 8 9
交换元素后数组d和数组e分别为:
-858993460 -858993460 -858993460 -858993460 -858993460
5 6 7 8 9
Press any key to continue
疑惑中,求解答