// 2022.3.25 数组 和冒泡
// goto 【了解】
// 1、设定一个标签
// 2、使用“goto 标签名”跳转到标签的位置,(只在函数内部生效)
// -------------------------------------------------------
// 数组:
// 相同数据类型的有序连续存储,
// int arr [ 10 ] ={1,2,23,4,5,6,10,7,8,9};
// 各个元素的内存地址,连续。
// 数组名为地址,是数组首元素的地址, arr == &arr[0];
// printf("数组大小:%u\n", sizeof(arr[0]);
// printf("数组元素的大小:%u\n", sizeof(arr[0]);
// printf("数组元素个数:%d\n", sizeof(arr) / sizeof(arr[0]);
// 数组初始化:
// int arr[12] = {1, 2, 4, 6, 76, 8, 90, 4, 3, 6, 6, 8 };
// int arr[10] = {1, 2, 4, 6, 76, 8, 9 }; 剩余未初始化的元素,默认为0值,
// int arr[10] = [ 0 ]; 初始化一个全为 0 的数组,【重点】
// int arr[] = {1, 2, 4, 6, 8 }; 编译器自动求取元素个数 【重点】
// int arr[] = { 0 }; 只有一个元素,值为 0、
// int arr[10];
// int [0] = 5;
// int [1] = 6;
// int [2] = 7; 其余元素未被初始化,默认值,随机数,
//练习 : 数组元素逆序:
//int arr[] = { 1, 6, 8, 0, 4, 3, 9, 2 }: //{2, 9, 3, 4, 0, 8, 6, 1}
//int len = sizeof(arr) / sizoef(arr[0]); // 数组元素个数
//
//int i = 0; // i 表示数组的首元素下标
//int j = len - 1; // 表示数组的最后一个元素下标
//int xijinping = 0; // 临时变量
//
// // 交换 数组元素,做逆序
//while (i < j)
// {
// xijinping = arr[i]; //三杯水法变量交换
// arr[i] = arr[j];
// arr[j] = xijinping;
// i++;
// j == ;
//}
//
//冒泡排序:
// int xijinping[10] = {12, 32, 14, 62, 27, 8, 89}; ==> 8 12 14 27 32 62 89
//#include <stdio.h>
//
//int main()
//{
// int a[10]; // 定义了一个数组,名字叫a,有10个成员,每个成员都是int 类型
// // a[0].......a[9], 没有a[10]
// // 没有a 这个变量,a 是数组的名字,但不是变量名,他是常量
// a[0] = 0;
// //..........
// a[9] = 9;
//
// int i = 0;
// for (i = 0; i < 10; i++)
// {
// a[i] = i; //给数组赋值
// }
// // 遍历数组,并输出每个成员的值,
// for (i = 0; i < 10; i++)
// {
// printf("%d", a[i]);
// }
// printf("\n");
// return 0;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//#include <windows.h>
//
//int main(void)
//{
//
// printf("=================1==============\n");
// printf("=================2==============\n");
// LABLE:
// printf("=================3==============\n");
// printf("=================4==============\n");
// printf("=================5==============\n");
// printf("=================6==============\n");
// printf("=================7==============\n");
//
// goto LABLE;
// printf("=================8==============\n");
// printf("=================9==============\n");
// printf("=================10==============\n");
//
// system("panse");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//#include <windows.h>
//
//int main(void)
//{
// int i = 0, j = 0;
// for (i = 0; i < 10; i++)
// {
// if (i == 5)
// goto ABX234;
// printf("i = %d\n", i);
// }
// for (j = 0; j < 20; j++)
// {
// ABX234:
// printf("j = %d\n", j);
// }
//
// system("panse");
// return 0;
//}
// ------------------------------------------ 下面的饿程序抄也没超对
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//
//int main(void)
//{
// int a = 5, b = 29, c = 10;
// int arr[10] = { 1,2,4,6,76,8,90,4,3,6 }; // int a = 109;
//
// printf("&arr[0] = %x\n" &arr[0]);
// printf("&arr[1] = %p\n" &arr[1]);
// printf("&arr[2] = %p\n" &arr[2]);
// printf("&arr[3] = %p\n" &arr[3]);
// printf("&arr[4] = %x\n" &arr[4]);
//
// printf("&a = %p\n", &a);
// printf("&b = %p\n", &b);
// printf("&c = %p\n", &c);
//
// system("panse");
// return EXIT_SUCCESS;
//}
//
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//
//int main(void)
//{
// int a = 5, b = 29, c = 10;
// int arr[10] = { 1,2,4,6,76,8,90,4,3,6 }; // int a = 109;
//
// printf("&arr[0] = %p\n", &arr[0]); // 取数组首元素的地址
//
// printf("arr = %p\n", arr); // 数组名
// system("panse");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//
//int main(void)
//{
// int a = 5, b = 29, c = 10;
// int arr[10] = { 1,2,4,6,76,8,90,4,3,6 }; // int a = 109;
//
// printf("数组大小:%\n", sizeof(arr));
//
// printf("数组:%\n", sizeof(arr));
// system("panse");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//
//int main(void)
//{
//
// int arr[10] = { 1,2,4,6,76,8,9 }; // int a = 109;
//
// int n = sizeof(arr) / sizeof(arr[0]);
//
// for (size_t i = 0; i < n; i++)
// {
// printf("%d\n", arr[i]);
// }
// system("panse");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//
//int main(void)
//{
//
// int arr[10] = {0}; // int a = 109;
//
// int n = sizeof(arr) / sizeof(arr[0]);
//
// for (size_t i = 0; i < n; i++)
// {
// printf("%d\n", arr[i]);
// }
// system("panse");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//
//int main(void)
//{
// int arr[] = { 1, 6, 8, 0, 4, 3, 9, 2 }; // {2, 9, 3, 4, 0, 9 ,6, 1}
// int len = sizeof(arr) / sizeof(arr[0]);//数组元素个数
//
// int i = 0; //数组的首元素下标
// int j = len - 1; // 表示数组的最后一个元素下标
// int temp = 0; // 临时变量
//
// // 打印原始数组
// for (size_t m = 0; m < len; m++)
// {
// printf("%d", arr[m]);
// }
// printf("\n");
// // 交互 数组元素,做逆序
//
// while (i < j)
// {
// temp = arr[i]; //三杯水变量交换
// arr[i] = arr[j];
// arr[j] = temp;
// i++;
// j--;
// }
// for (size_t n = 0; n < len; n++)
// {
// printf("%d", arr[n]);
// }
// printf("\n");
//
// system("panse");
// return EXIT_SUCCESS;
//}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main(void)
{
int xjp[] = { 12, 32, 14, 62, 27, 8, 89 };
int n = sizeof(xjp) / sizeof(xjp[0]); // 数组元素个数
int temp = 0; // 临时变量
// 完成乱序数组的冒泡排序。
for (size_t i = 0; i < n - 1; i++) //外层控制行
{
for (size_t j = 0; j < n - 1 - i; j++) //内层控制
{
if (xjp[j] > xjp[j + 1]) // 满足条件 三杯水交换
{
temp = xjp[j];
xjp[j] = xjp[j + 1];
xjp[j + 1] = temp;
}
}
}
// 打印排序后的数组,确定正确性。
for (size_t i = 0; i < n; i++)
{
printf("%d ", xjp[i]);
}
printf("\n");
system("panse");
return EXIT_SUCCESS;
}