使用指针形式 为数组随机赋值,并进行冒泡排序
来源:互联网 发布:李拉大提琴知乎 编辑:程序博客网 时间:2024/05/20 18:01
题目:使用指针形式,对一个数组随机赋值,每个元素的取值范围是[40 90],并使用指针形式对数组进行冒泡排序(升序),最后打印出排序后的数组
//定义一个10个元素的数组 int arr[10] = {0}; int *p = arr;//定义一个指针变量,赋初值为数组的首地址(数组名arr即为数组的首地址,它是一个指针常量) //随机生成10个元素的数组,并打印 for (int i = 0; i < 10; i++) { *(p + i) = arc4random()%51 + 40;//arc4random()是随机取数函数,对[m n]范围内随机取数公式为: arc4random()%(n - m + 1) + m printf("%d\t", *(p + i)); } //冒泡排序 for (int i = 0; i < 10 - 1; i++) {//外层循环控制比较趟数(10个元素比较9趟) for (int j = 0; j < 10 - i - 1; j++) {//内层循环控制每趟的比较次数(每趟比较的次数 + 第几趟比较 = 10), 10 - i - 1的作用也是为了防止数组越界 //冒泡排序的核心代码 if (*(p + j) > *(p + j + 1)) { //定义整形变量temp来交换相邻元素的值 int temp = *(p + j); //*(p + j)在这里用了指针形式表示了数组中元素的值, *是取地址符, *p就是取出指针变量p指向的地址处的值 *(p + j) = *(p + j + 1); *(p + j + 1) = temp; } } } printf("\n数组按升序排序后:\n"); //对排序后的数组重新打印,验证效果 for (int i = 0; i < 10; i++) { printf("%d\t", *(p + i)); }
控制台运行示例:
本题主要考察对指针的理解, 指针与数组的结合使用.需要注意的几点:
//数组名a就是数组的首地址(那么数组名就是指针,而且是一个常量指针,不能重指向)
//数组名中存放的地址和数组中第一个元素的地址是同一个地址
//指针的算术运算,指针类型决定指针在做+1运算时,一次跳转多少个字节
/*
int* +1 跳转4
short* +1 跳转2
long* + 1 跳转8(64位操作系统的)
float* + 1 跳转4
double* + 1 跳转8
char* + 1 跳转1
/*
int* +1 跳转4
short* +1 跳转2
long* + 1 跳转8(64位操作系统的)
float* + 1 跳转4
double* + 1 跳转8
char* + 1 跳转1
*/
//指针类型在内存中所占的字节大小和指针的类型无关,只和操作系统的位数有关,32位下占4个字节,64位下占8个字节
//定义一个指针的时候,一定要赋初始值,否则,指针里存放的地址是任意的.不赋初值的指针,称为野指针,操纵野指针是很危险的.
//多个指针可以指向同一个地址
*取值操作符 和 &取地址操作符
*后跟指针变量, 表示取出这个指针所指向内存处 存放的值
&后跟变量, 表示取出这个变量在内存中的 地址
1 0
- 使用指针形式 为数组随机赋值,并进行冒泡排序
- 使用数组和指针的形式实现冒泡排序,并优化。bubble_sort();
- 使用随机函数初始化一个数组,并对数组进行排序(冒泡排序法和选择排序法)
- 对随机数组进行冒泡排序
- 对数组元素随机赋值,冒泡排序,输出数组
- 冒泡排序 - 随机生成数组并对其排序
- 使用指针法对数组进行冒泡排序、选择排序、插入排序法、二分查找法
- 编程产生一个int数组,长度为30,并向其中随机插入1-30,并且不能重复输出数组。实现一个冒泡排序算法对其进行排序,输出排序结果
- 用3位以内的随机整数填充长度为20的整型数组,然后使用冒泡排序法按升序进行排序,输出排序后的数组元素(每行输出10个元素)。
- java小程序——给数组随机赋值,查找输入的值以及冒泡和选择排序数组并输出
- 使用冒泡对数组进行排序
- 【二维数组】声明一个二维数组,为该数组随机赋值,并输出该数组
- 使用冒泡排序算法对数组元素进行排序
- 输入三个数字使用指针进行排序(冒泡原理)
- 数组与指针&冒泡排序
- 二维指针数组冒泡排序
- 随机从1~100中选出10个数并进行冒泡排序
- 利用随机类生成数组,并用冒泡排序以及选择排序对不同数组的元素进行从小到大的排序
- 乌班图修改root密码
- 微信公众账号利用post方法调用接口实现方法
- 如何使用git推送本地文件到github
- zoj 1051 A New Growth Industry
- [33]Search in Rotated Sorted Array
- 使用指针形式 为数组随机赋值,并进行冒泡排序
- Java: 23种设计模式全解析之四
- shell学习之一: 变量,数组,判断,循环,函数
- java基础学习笔记——TCP/客户端递交返回大写
- connection、HttpSession、hibernate中的session、transaction
- Python的哪些特性或用法让你相见恨晚?
- Java的equals方法与hashcode
- SQL时间戳的使用
- 二分法查找某数