// 定义了一个整形数组,数组中有5个元素
// 使用数组元素:数组名[下标],下标从0开始,到元素个数减去1
// int array[5] = {1 ,3, 6, 5, 4};
// int i = 3;
// array[3] = 10;
// printf("%d\n",array[i]);
// //数组三个元素,每个元素都为0
// int array1[3] = {0};
// printf("%d\n",array1[1]);
// //数组有五个元素,下标为0的位置上值为3
// int array2[5] = {3};
// printf("%d\n",array2[0]);
// int array3[5] = {1, 3, 4, 5, 7};
// //定义数组的时候,[]中能是常量或者是常量表达式,不能是变量
// printf("%d\n",array3[3]);
// int array[] = {1 ,3, 6, 5, 4};
// int i = 3;
// array[3] = 10;
// printf("%d\n",array[i]);
// printf("%lu",sizeof(i));
// int array[3] = {1, 3, 6, 3};
// printf("%d\n",array[3]);
// int array[] = {1, 1, 1, 3, 4, 6, 5, 3};
// for (int i = 0; i <8; i++) {
// printf("array[%d]=%d\n",i,array[i]);
// }
// printf("\n%lu\n",sizeof(array));
// int array[10]={0};
// for (int i = 0; i < 10; i++) {
// array[i] = arc4random() % 51 + 10;
// printf("array[%d] = %d\n",i,array[i]);
// }
// int a[3] = {1, 2, 8};
// int b[3] = {0};
// b = a ;//数组是整体,不能直接参与运算,只能单个元素运算。
// int array[20] = {0};
// int sum = 0;
// for (int i = 0; i < 20; i++) {
// array[i] = arc4random() % 41 + 30;
// sum = sum + array[i];
// printf("array[%d] = %d\n",i,array[i]);
// }
// printf("%d",sum);
// int a[10] = {0};
// int b[10] = {0};
// for (int i = 0; i < 10; i++) {
// b[i]=arc4random()%51;
// a[i] = b[i];
// printf("%d ",b[i]);
//
// }
// printf("\n");
// for (int i = 0; i < 10; i++) {
// printf("%d ",a[i]);
// }
// int array[10] = {0};
// int array1[10] = {0};
// int array2[10] = {0};
// for (int i = 0; i < 10; i++) {
// array[i] = arc4random() % 21 + 20;
// array1[i] = arc4random() % 21 + 20;
// array2[i] = array1[i] + array[i];
printf("array[%d]=%d\n",i,array2[i]);
// printf("%d %d %d\n",array[i],array1[i],array2[i]);
// }
// int n = 0;
// printf("请输入一个数字:%d",n);
// scanf("%d",&n);
// int array[10] = {0};
// for (int i = 0; i < 10; i++) {
// array[i] = arc4random() % 100;
// printf("%d ",array[i]);
// }
// for (int i = 0; i < 9; i++) {
// for (int j = 0; j < 9 - i; j++) {
// if (array[j] > array[j+1]) {
// int temp = array[j];
// array[j] = array[j+1];
// array[j+1] = temp;
// }
// }
// }
// printf("\n");
// for (int i = 0; i < 10; i++) {
// printf("% d",array[i]);
// }
// 冒泡排序
// int array[10] = {0};
// for (int i = 0; i < 10; i++) {
// array[i] = arc4random() % 101;
// printf("%d ",array[i]);
// }
// for (int i = 0; i < 10; i++) {
// for (int j = 0; j < 9 - i; j++) {
// if (array[j] > array[j + 1]) {
// int temp = array[j];
// array[j] = array[j + 1];
// array[j + 1] = temp;
// }
// }
// }
// printf("\n");
// for (int i = 0; i < 10; i++) {
// printf("%d ",array[i]);
// }
选择排序
//
// int array[10] = {0};
// for (int i = 0; i < 10; i++) {
// array[i] = arc4random() % 101;
// printf("%d ",array[i]);
// }
// // 外层循环控制趟数
// for (int i = 0; i < 10 - 1; i++) {
// // 每趟开始,假定最开始的位置上的数为最小值
// int minIndex = i;
// for (int j = i + 1; j < 10; j++) {
// // 如果当前数,比最小值更小
// if (array[j] < array[minIndex]) {
// // 更新最小值的下标
// minIndex = j;
// }
// }
// // 一趟结束之后,如果最小值的下标和开始的时候,假定的不是同一个数,则交换。
// if (minIndex != i) {
// int temp = array[i];
// array[i] = array[minIndex];
// array[minIndex] = temp;
// }
//
// printf("\n");
// for (int i = 0; i < 10; i++) {
// printf("%d ",array[i]);
// }
// }
// int array[10] = {0};
// for (int i = 0; i < 10; i++) {
// array[i] = arc4random() % 101;
// printf("%d ",array[i]);
// }
// for (int i = 0; i < 9; i++) {
// int min = i;
// for (int j i+1= i + 1; j <10; j++) {
// if (array[j] < array[min]) {
// min = j;
// }
//
// }
// if (min != i) {
// int temp = array[i];
// array[i] = array[min];
// array[min] = temp;
// }
// }
// printf("\n");
// for (int i =0; i < 10; i++) {
// printf("%d ",array[i]);
// }
// 字符数组,字符串
//char str[10] = {'i', 'p', 'h', 'o', 'n', 'e'};
// char str[10] = "iphone";
// for (int i = 0; i < 10; i++) {
// printf("%c ",str[i]);
// }
//%s的输出原理:从数组的第一个元素开始输出,到\0结束,用于输出字符串,后面直接跟数组名。
// char str1[] = {'i','p','h','o','n','e','\0'};
// char str[] = "iphone!";
str[3] = '\0';
// printf("%s \n",str);
// printf("size of str:%lu\n",sizeof(str));
// for (int i = 0; i < 8; i++) {
// printf("%c",str1[i]);
// }
//sizeof 运算符,用来测算数据类型或者变量所占用的空间
// strlen是一个函数,只能用来计算字符串的长度,是不含\0的
// char string[] = "hf\0aj";
// unsigned long length = strlen(string);
// printf("%lu",length);
// char str1[20] = "aaaaaaaaaaa";
// char str1[2] = "aa";
// char str2[12] = "iphone";
把str2里面的内容拷贝到str1中,拷到\0结束
把拷入的字符串,内存得足够大,否则很危险
// strcpy(str1,str2);
// printf("%c\n",str1[1]);
// printf("%s\n",str1);
// unsigned long length = sizeof(str1);
// unsigned long len = strlen(str1);
// printf("%lu %lu",length,len);
// char str1[100] = "iphone";
// char str2[100] = "Android";
// strcat(str1, str2);
// printf("%s\n",str1);
// printf("%s",str2);
// char str1[100] = "aeeref";
// char str2[100] = "ace";
// int result = strcmp(str1, str2);
// int len = strlen(str1);
// printf("%d\n",result);
// printf("%s",str2);
// char str1[100] = "I love ios,i want a ipone6s,do you know?";
// int sum = 0;
// for (int i = 0; i < 35; i++) {
// while (str1[i] == ' ' )
// {
// str1[i] = '\0';
// sum++;
// }
//
// }
// printf("%d",sum);
//2。将数组a反向输出
// int a[10] = {0};
//
// for (int i = 0; i < 10; i++) {
// a[i] = arc4random()%101;
// printf("%d ",a[i]);
// }
// printf("\n");
// for (int i = 9; i >=0; i--) {
// printf("%d ",a[i]);
// }
//3 (*)对第一题中的数组进行求和操作,打印计算结果。
// int a[10] = {0};
// int sum = 0;
// for (int i = 0; i < 10; i++) {
// a[i] = arc4random()%101;
// printf("%d ",a[i]);
// sum = sum + a[i];
// }
// printf("和为:%d",sum);
//4. (**)计算第一题数组连减,打印计算结果。
// int array[20] = {};
// for (int i = 0; i < 20; i++) {
// array[i] = arc4random()%101;
// printf("%d\t", array[i]);
// }
// printf("\n");
// for (int i = 0; i < 19; i++) {
// array[i] = array[i + 1] - array[i];
// printf("%d\t", array[i]);
// }
//
//5. (**)随机产生 20 个 10~50 的正整数存放到数组中,并求数组中的多有 元素最大值、最小值、平均值及各元素之和。
// int a[20] = {0};
// int max = 0;
// int min = 0;
// float average = 0;
// float sum = 0;
// for (int i = 0; i < 20; i++) {
// a[i] = arc4random()%101;
// printf("%d ",a[i]);
// sum = sum + a[i];
// }
// average = sum / 20;
// printf("\n");
// for (int i = 0; i < 20; i++) {
// if (a[max] < a[i]) {
// max = i;
// }
// if (a[min] > a[i]) {
// min = i;
// }
// }
// printf("最大值为:%d,最小值为:%d,和为:%f,平均值为:%f",a[max],a[min],sum,average);
// 6. 编写一个程序,输入两个包含 5 个元素的数组,先将两个数组升序排序,然 后将这两个数组合并成一个升序数组。
// int a[5] = {0};
// int b[5] = {0};
//
// printf("数组a中的元素为:");
// for (int i = 0; i < 5; i++) {
// a[i] = arc4random() % 100;
// printf("%d ",a[i]);
// }
// printf("\n");
//
// for (int i = 0; i < 4; i++) {
// for (int j = 0; j < 4 - i; j++) {
// if (a[j] > a[j+1]) {
// int temp = a[j];
// a[j] =a[j + 1];
// a[j + 1] = temp;
// }
// }
// }
// printf("a中的元素升序排列之后为:");
// for (int i= 0; i < 5; i++) {
// printf("%d ",a[i]);
// }
// printf("\n");
// printf("数组b中的元素为:");
// for (int i = 0; i < 5; i++) {
// b[i] = arc4random() % 100;
// printf("%d ",b[i]);
// }
// for (int i = 0; i < 4; i++) {
// for (int j = 0; j < 4 - i; j++) {
// if (b[j] > b[j+1]) {
// int temp = b[j];
// b[j] =b[j + 1];
// b[j + 1] = temp;
// }
// }
// }
// printf("\n");
// printf("数组b中的元素升序排列之后为:");
// for (int i= 0; i < 5; i++) {
// printf("%d ",b[i]);
// }
// printf("\n");
// int c[10] = {0};
// printf("数组c中的元素为:");
// for (int i = 0; i < 5; i++) {
// c[i] = a[i];
// printf("%d ",c[i]);
// }
// for (int i = 5; i < 10; i++) {
// c[i] = b[10 - i];
// printf("%d ",c[i]);
// }
// for (int i = 0; i < 9; i++) {
// for (int j = 0; j < 9 - i; j++) {
// if (c[j] > c[j+1]) {
// int temp = c[j];
// c[j] =c[j + 1];
// c[j + 1] = temp;
// }
// }
// }
// printf("\n");
// printf("数组c中的元素升序排列之后为:");
// for (int i= 0; i < 10; i++) {
// printf("%d ",c[i]);
// }
//7. (***)给定某年某月某日,输出其为这一年的第几天。
// int a = 0, b = 0, c = 0, d = 0;
// printf("请输入年月日:");
// scanf("%d%d%d", &a, &b, &c);
// if (c > 31 || c < 1){
// printf("你的输入有误");
// }else{
// switch (b) {
// case 1:
// d = b;
// break;
// case 2:
// d = b + 31;
// break;
// case 3:
// d = b + 59;
// break;
// case 4:
// d = b + 90;
// break;
// case 5:
// d = b + 120;
// break;
// case 6:
// d = b + 151;
// break;
// case 7:
// d = b + 181;
// break;
// case 8:
// d = b + 212;
// break;
// case 9:
// d = b + 243;
// break;
// case 10:
// d = b + 273;
// break;
// case 11:
// d = b + 304;
// break;
// case 12:
// d = b + 334;
// break;
// default:
// printf("你的输入有误:");
// break;
// }if (a % 400 == 0 ||(a % 4 ==0 && a % 100 != 0)) {
// if (b < 3) {
// printf("这一天是该年的第%d天", d);
// }else{
// printf("这一天是该年的第%d天", d+1);
// }
// }else{
// printf("这一天是该年的第%d天", d);
// }
// }
//8. (**)编写整型值数组排序程序(冒泡排序、选择排序、快速排序--升序)
//int a[] = {3,-9,32,77,63,-24,14,0,21,45};
// int a[] = {3,-9,32,77,63,-24,14,0,21,45};
// for (int i = 0; i < 10; i ++){
// for (int j = 0; j < 9 - i; j ++) {
// if (a[j] > a[j+1]) {
// int temp = a[j];
// a[j] = a[j+1];
// a[j + 1] = temp;
// }
// }
// }
// printf("\n");
// for (int i = 0; i < 10; i++) {
// printf("%d ",a[i]);
// }
// int a[] = {3,-9,32,77,63,-24,14,0,21,45};
// for (int i = 0; i < 10; i ++){
// int min = i;
// for (int j = i+1; j < 10; j ++) {
// if (a[j] < a[min]) {
// min = j;
// }
// }
// if (min != i) {
// int temp = a[i];
// a[i] = a[min];
// a[min] = temp;
//
// }
//
// }
// printf("\n");
// for (int i = 0; i < 10; i++) {
// printf("%d ",a[i]);
// }
//快速排序
//9、(***)找出下列整型数组中最大和最小值及其所在位置 i。
// int a[] = {5,-9,32,77,64,-24,14,0,21,45};
// int min = 0;int max = 0;
// for (int i = 0; i < 10; i++) {
// if (a[max] < a[i]) {
// max = i;
// }
// if (a[min] > a[i]) {
// min = i;
// }
// }
// printf("最大值下标为:%d,最小值下标为:%d",max,min);
// 10、(*)把 str1, str2, str3 合并到 result 数组中。 char
//result[50] = {0}; 结果:“Lanou 23_class is niu best!”
// char result[50] = {0};
// char str1[] = "Lanou ";
// char str2[] = "23_class ";
// char str3[] = " is niu best!";
// result[50] = strcat(strcat(strcat(result, str1),str2),str3);
// printf("%s",result);
// 11、(**)找出下面程序的错误:
// char string[10], str1[10];
// int i;
// for(i = 0; i < 10; i++)
// {
// str1[i] = 'a'; }
// strcpy(string, str1);
//对string初始化的内存太小,copy的时候需要copy一个/0来结束 当内存为10个字节的时候全被字符占据 copy无法停止 引起系统崩溃
// char string[11]={0};
// char str1[10];
// int i;
// for(i = 0; i < 10; i++)
// {
// str1[i] = 'a';
// printf("%c ",str1[i]);
// }
// printf("\n");
// strcpy(string, str1);
// for(i = 0; i < 10; i++)
// {
// printf("%c ",string[i]);
// }
//12、(**)下面这个程序执行后会有什么错误或者效果:
// 出现的错误提示为:Comparison of constant 256 with expression of type 'unsigned char' is always true
// unsigned char str[10], i;
// for(i = 0; i < 256;i++)
// {
// str[i] = i;
// }