问题:将数组A和和数组B中的内容进行交换。(数组一样大)
在这道题中我很容易的写出来代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr1[5] = { 1 , 2 , 3 , 4 , 5 };
int arr2[5] = { 0 , 1 , 2 , 3 , 4 };
int tmp[5];
int i = 0;
printf("arr1={");
for (i = 0; i < 5; i++)
{
tmp[i] = arr1[i];
arr1[i] = arr2[i];
arr2[i] = tmp[i];
printf("%d", arr1[i]);
if (i<4)
{
printf(",");
}
}
printf("}\narr2={");
for (i = 0; i < 5; i++)
{
printf("%d", arr2[i]);
if (i<4)
{
printf(",");
}
}
printf("}\n");
system("pause");
return 0;
}
虽然比较容易的写出了这个程序,但是数组是自己随机写的一个五个元素的数组,如果两个其他元素个数的数组,这个程序就不能正确运行了.不可能每个不同的数组都改下for循环中的条件
最后,我想到了在最开始学习数int,short,char,float,double时所用的sizeof.这样算元素个数是就可以用整个数组的字节数除以每个数组中元素所占的字节数:sizeof (arr)/sizeof (arr[])
经过更改所得程序是这样: