将数组A中的内容和数组B中的内容进行交换。(数组一样大)
//将数组A中的内容和数组B中的内容进行交换(数组一样大)
/*
* 此题的关键在于数值的交换,应定义一个数组来暂存数值,
* 再利用循环依次交换
*/
int main()
{
//定义两个数组并赋值
int arr1[] = { 1,2,3 };
int arr2[] = { 3,2,1 };
//求出任意数组总元素大小
int sz = sizeof(arr1) / sizeof(arr1[0]);
//利用数组下标进行值交换
int i = 0;
//定义变量暂存数值
int tmp[3];
for (i = 0; i <= sz; i++)//依次交换数值
{
tmp[i] = arr1[i];
arr1[i] = arr2[i];
arr2[i] = tmp[i];
}
printf("交换后arr1:");
for (i = 0; i < sz; i++)//打印交换后的arr1值
{
printf("%d ", arr1[i]);
}
printf("\n");//换行,让结果更加明了
printf("交换后arr2:");
for (i = 0; i < sz; i++)//打印交换后的arr2值
{
printf("%d ", arr2[i]);
}
return 0;
}
创建一个整形数组,完成对数组的操作
-
实现函数init() 初始化数组为全0
-
实现print() 打印数组的每个元素
-
实现reverse() 函数完成数组元素的逆置。
要求:自己设计以上函数的参数,返回值。
代码如下:
/*创建一个整形数组,完成对数组的操作
1.实现函数init() 初始化数组为全0
2.实现print() 打印数组的每个元素
3.实现reverse() 函数完成数组元素的逆置。
要求:自己设计以上函数的参数,返回值。
*/
void reverse(int arr[], int sz)
{
//定义变量,利用循环实现数组逆序
int i = 0;
printf("arr数组逆置后:");
for (i = sz - 1; i >= 0; i--)
{
printf("%d ", arr[i]);
}
}
void print(int arr[], int sz)
{
//创建变量,利用循环打印每个元素
int i = 0;
printf("arr数组逆置前:");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
//调用函数完成数组元素的逆置
reverse(arr, sz);
}
void init(int arr[], int sz)
{
//定义变量,利用循环初始化数组
int i = 0;
for (i = 0; i < sz; i++)
{
scanf("%d", &arr[i]);
}
//调用函数打印数组每个元素
print(arr, sz);
}
int main()
{
//创建一个整型数组
int arr[3] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);//数组总个数
//调用init函数,对数组初始化
init(arr,sz);
return 0;
}
实现一个对整形数组的冒泡排序
//实现一个对整形数组的冒泡排序
/*
* 题解:
* 冒泡排序:
* 依次和相邻的数字对比,对比后,较小的数字依次交换后(升序)
* 形成从小到大有序排放
* 解题关键:
* 1.当我们将数字两两比较时,那我们要比较的次数就为n(总个数)-1次.
* 也就代表我们要循环n(总个数)-1趟比较.
* 2.当我们将数字从头到尾比较一趟后,就能交换出正确的数字,则我们
* 再进行下一趟比较时,就得-1.
*/
int main()
{
//定义数组
int arr[] = { 3,2,9,6,5,7,1,8,4,10 };
//计算元素个数
int sz = sizeof(arr) / sizeof(arr[0]);
//定义数组作为暂存.
int tmp[10] = { 0 };
int i = 0;
for (i = 0; i < sz-1; i++)//外循环为总共要进行多少趟
{
//定义j变量,实现每一趟比较
int j = 0;
for (j = 0; j < sz-1-i; j++)//内循环为每一趟的比较,j<sz-1-i为每一趟都解决掉一个数字,
{ //因此利用i变量的值,实现每一趟-1的效果
if (arr[j] > arr[j + 1])
{
tmp[j] = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp[j];
}
}
}
//打印数字
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}