#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//使⽤指针访问数组
//打印一个数组,输入什么值就打印什么值
//int main()
//{
// int arr10 = { 0 };
// int i = 0;
// int* p = arr;
// int sz = sizeof(arr) / sizeof(arr0);
// for (i = 0; i < sz; i++)
// {
// //scanf("%d", p + i);//输入
// //scanf("%d", &arri);//输入
// scanf("%d", arr+i);//输入
// }
// for (i = 0; i < sz; i++)
// {
// //printf("%d ", *(p + i));//输出
// //printf("%d ", arri);//输出
// printf("%d ", *(arr+i));//输出结果一样
// }//总结:p+i == &arri == arr+i;
// //*(p+1) == arr ==*(arr+i)
// return 0;
//}
//⼀维数组传参的本质
//void test(int arr10)
//{
// int sz2 = sizeof(arr) / sizeof(arr0);
// printf("sz2 = %d\n", sz2);//在x64环境运行为2;在x86环境运行为1
//}//总结:传参int arr10看似是一个数组,其实是int* arr也就是数组首地址
////所以在x64环境运行为一个地址所占字符为8;所以在86环境运行为一个地址所占字符为4
//int main()
//{
// int arr10 = { 1,2,3,4,5,6,7,8,9,10 };
// int sz1 = sizeof(arr) / sizeof(arr0);
// printf("sz1 = %d\n", sz1);//10
// test(arr);//传的就是数组元素首地址
// return 0;
//}
//冒泡排序
void bubble_sort(int arr\[\], int sz)
{
int i = 0;
int cound = 0;
//循环多少趟
for (i = 0; i < sz - 1; i++)
{
int j = 0;
int flag = 1;//假设不用交换了
//交换
for (j = 0; j < sz-1-i; j++)
{
cound++;
if (arrj > arrj + 1)
{
int z = 0;
z = arrj;
arrj = arrj + 1;
arrj + 1 = z;
flag = 0;
}
if (flag == 1)
{
break;
}
}
}
printf("%d\n", cound);//第一行数组输出为:45次
//第二行数组输出为:17次(9+8)
}
void print_arr(int arr\[\], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arri);
}
}
int main()
{
//int arr10 = { 9,8,7,6,5,4,3,2,1,0};
int arr10 = { 9,0,1,2,3,4,5,6,7,8};
int sz = sizeof(arr) / sizeof(arr0);
bubble_sort(arr, sz);
print_arr(arr, sz);
return 0;
}