使用joomla的网站,关键词排名怎么做好,荆门网站建设,给个网站免费的目录
1.使用函数实现数组操作
2.冒泡排序
3.三子棋
4.【一维数组】交换数组
5.扫雷
6.概念辨析tips 我又来了#xff0c;今天是数组题#xff0c;本人还在补军训真的热#xff01;#x1f197;
1.使用函数实现数组操作
2.冒泡排序
3.三子棋
4.【一维数组】交换数组
…目录
1.使用函数实现数组操作
2.冒泡排序
3.三子棋
4.【一维数组】交换数组
5.扫雷
6.概念辨析tips 我又来了今天是数组题本人还在补军训真的热
1.使用函数实现数组操作
2.冒泡排序
3.三子棋
4.【一维数组】交换数组
5.扫雷
1.使用函数实现数组操作
//题目1
//创建一个整形数组完成对数组的操作
//实现函数init() 初始化数组为全0
//实现print() 打印数组的每个元素
//实现reverse() 函数完成数组元素的逆置。
//要求自己设计以上函数的参数返回值。
#includestdio.h
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;//1int right sz - 1;//5while (left right){int tmp 0;tmp arr[left];arr[left] arr[right];arr[right] tmp;left;right--;}
}//数组元素1
//下标1
//whyint 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);//初始化数组为0init(arr,sz);print(arr, sz);printf(\n);return 0;
} 2.冒泡排序
//题目2
//实现一个对整形数组的冒泡排序
/*
思路
遍历数组对数组中相邻的两个元素进行比较如果需要升序
前一个数据大于后一个数据时交换两个位置上的数据直到所有的数据比较完
此时最大的数据已经放在数组的末尾。
除最大数据已经排好序外其余数据还是无需对剩余数据采用与上述类似的方式进行处理即可
*/
#includestdio.h
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;
} 3.三子棋
C语言之三子棋游戏实现篇_唐棣棣的博客-CSDN博客https://blog.csdn.net/m0_74841364/article/details/132018375?spm1001.2014.3001.5501
4.【一维数组】交换数组
//题目6
//将数组A中的内容和数组B中的内容进行交换。数组一样大//注意
//交换数组不能将数组名交换即可
//交换数组必须是一对一对的交换
#includestdio.h
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;
} 5.扫雷
C语言之扫雷游戏实现篇_唐棣棣的博客-CSDN博客https://blog.csdn.net/m0_74841364/article/details/132018322?spm1001.2014.3001.5501
6.概念辨析tips
数组的初始化不能使用只能使用{ }数组是相同类型的一段连续的空间。数组下标是从0开始的比如int array[N]下标的范围为[0,N)其中N位置不能存储有效元素即[0,N-1]。数组不能越界。int arr[] {1,2,(3,4),5};里面总共有4个元素(3,4)为逗号表达式取后者4因此数组中元素分别为1245。数组的下标是从0开始的。数组在内存中是连续存放的。数组名既可以表示数组的地址sizeof / )也可以表示数组首元素的地址,虽然两个在数值上一样的但是含义不一样。这个要是系统而定随着数组下标的由小到大地址由低到高。对于二维数组int array[M][N],说明如下 M和N都必须为常数 M代表数组有M行N代表每行中有N个元素 其中M可以省略省略后必须给出初始化表达式编译器从初始化结果中推断数组有多少 N一定不能省略因为N省略了就不能确定一行有多少个元素也不能确定数组有多少行
二维数组int a[2][3]{1,2,3,4,5,6}; 关于sizeof vs strlen
#includestdio.h
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;
} sizeof
sizeof是操作符。sizeof计算的占用内存的大小单位是字节。计算字符串是包括\0和\0之前的出现的字符个数。计算字符是字符的个数。sizeof计算的对象是什么类型都行
strlen
strlen是库函数。strlen是统计字符串长度的。strlen遇到\0才停止计算。strlen只能针对字符串计算字符串是不包括\0。strlen计算字符时遇不到\0所以随机值。
acX和acY都是字符数组但是初始化表达式不同acX和acY的区别如下
acX数组中总共有8个元素分别是a,b,c,d,e,f,g,\0acY数组中总共有7个元素分别是a,b,c,d,e,f,gsizeof这里求的是数组大小数组大小等于有效元素个数*每个元素的大小。sizeof(acX) 8,sizeof(acY) 7strlen求的是字符串长度从首元素开始计算遇见‘\0’停止由于acY数组没有\0‘所以strlen(acY)的结果是个随机值
关于以上练习题大家可以动手写一写。
✔✔✔✔✔感谢大家的阅读若有错误和不足欢迎指正
代码----------→【gitee唐棣棣 (TSQXG) - Gitee.com】
联系----------→【邮箱2784139418qq.com】