目录
1.使用函数实现数组操作
2.冒泡排序
3.三子棋
4.【一维数组】交换数组
5.扫雷
6.概念辨析tips
我又来了,今天是数组题,本人还在补军训真的热!
1.使用函数实现数组操作
2.冒泡排序
3.三子棋
4.【一维数组】交换数组
5.扫雷
//题目1
//创建一个整形数组,完成对数组的操作
//实现函数init() 初始化数组为全0
//实现print() 打印数组的每个元素
//实现reverse() 函数完成数组元素的逆置。
//要求:自己设计以上函数的参数,返回值。
#include
void print(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
void init(int arr[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
arr[i] = 0;
}
}
//❌
//void reverse(int arr[], int sz)
//{
// int left =arr[0];//1
// int right = arr[sz - 1];//5
// while (left < right)
// {
// int tmp = 0;
// tmp = left;
// left = right;
// right= tmp;
// left++;
// right--;
// }
//}
//✔
void reverse(int arr[], int sz)
{
int left = 0;//1
int right = sz - 1;//5
while (left < right)
{
int tmp = 0;
tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
//数组元素+1
//下标+1
//why?????????
int main()
{
int arr[5] = { 1,2,3,4,5 };
int sz = sizeof(arr) / sizeof(arr[0]);
print(arr,sz);
printf("\n");
//数组全部逆置
reverse(arr, sz);
print(arr, sz);
printf("\n");
//初始化数组为0
init(arr,sz);
print(arr, sz);
printf("\n");
return 0;
}
//题目2
//实现一个对整形数组的冒泡排序
/*
思路:
遍历数组,对数组中相邻的两个元素进行比较,如果需要升序,
前一个数据大于后一个数据时,交换两个位置上的数据,直到所有的数据比较完,
此时,最大的数据已经放在数组的末尾。
除最大数据已经排好序外,其余数据还是无需,对剩余数据采用与上述类似的方式进行处理即可
*/
#include
int main()
{
int arr[10] = { 10,9,8,7,6,5,4,3,2,1 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
int j = 0;
for (j = 0; j < sz - 1; j++)//趟数
{
for (i = 0; i < sz - 1 - i; i++)//每趟次数
{
if (arr[i] < arr[i + 1])
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
}
for (i = 0; i < sz ; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
C语言之三子棋游戏实现篇_唐棣棣的博客-CSDN博客https://blog.csdn.net/m0_74841364/article/details/132018375?spm=1001.2014.3001.5501
//题目6
//将数组A中的内容和数组B中的内容进行交换。(数组一样大)
//注意
//交换数组不能将数组名交换即可
//交换数组必须是一对一对的交换
#include
void change(int arr1[], int arr2[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
int tmp = 0;
tmp = arr1[i];
arr1[i] = arr2[i];
arr2[i] = tmp;
}
}
int main()
{
int arr1[] = { 1,2,3,4,5 };
int arr2[] = { 6,7,8,9,10 };
int sz = sizeof(arr1) / sizeof(arr1[0]);
change(arr1, arr2,sz);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
for (i = 0; i < sz; i++)
{
printf("%d ", arr2[i]);
}
return 0;
}
C语言之扫雷游戏实现篇_唐棣棣的博客-CSDN博客https://blog.csdn.net/m0_74841364/article/details/132018322?spm=1001.2014.3001.5501
#include
int main()
{
char acX[] = "abcdefg";
char acY[] = { 'a','b','c','d','e','f','g' };
printf("sizeof=%d sizeof=%d\n", sizeof(acX), sizeof(acY));
printf("strlen=%d strlen=%d\n", strlen(acX), strlen(acY));
return 0;
}
关于以上练习题,大家可以动手写一写。
✔✔✔✔✔感谢大家的阅读,若有错误和不足,欢迎指正!
代码----------→【gitee:唐棣棣 (TSQXG) - Gitee.com】
联系----------→【邮箱:[email protected]】