C语言4(数组)

来源:互联网 发布:天龙八部自动祝福软件 编辑:程序博客网 时间:2024/04/29 06:28

                                             C语言4(数组)

添加头文件#include <string.h>

//#pragma mark - 一维数组

// 存储同种数据类型
// 数组定义的格式:数据类型 数组名[元素个数]
//
//
// int age[5] = {19,27,44,66,88};
// printf("%p\n",age);
// printf("%p\n",&age[0]);
// for (int i = 0; i < 5; i ++) {
// printf("%p\n",&age[i]);
// }

// 系统为数组分配一个连续的存储空间
// printf("%d\n",sizeof(age));


#pragma mark - 数组的初始化
// int array[3] = {1,2,3};
// printf("%d\n",array[1]);
//
// array[1] = 4;
// printf("%d\n",array[1]);
//
//
//
// int array1[] = {1,2,3};
//
// int array2[5] = {1,2,3};
//
// int array3[5] = {0};
//
// int array4[3] = {1,2,3};


// int sum = 0;
// for (int i = 0; i < 3; i ++) {
// printf("array4 = %d\n",array4[i]);
// sum += array4[i];
// }



//1.数组中括号里面的数字,在定义的时候表示数组长度,单独使用的时候表示下标

//2.不要定义一个空数组


//得到1-200的偶数,放入数组

// int numberArray[110] = {0};
// int index = 0;
// for (int i = 1; i <= 200; i ++) {
// if (i % 2 == 0) {
// numberArray[index] = i;
// index ++;
//
// }
//
// }
//
// for (int i = 0; i < index; i ++) {
// printf("%d\n",numberArray[i]);
// }
//
//
//求6个成绩的总分和平均分


//升级版

// int newScore[6];
// int newSum = 0;
//
// for (int i = 0; i < 6; i ++) {
// printf("请输入你的第%d课成绩:",i + 1);
// scanf("%d",&newScore[i]);
// newSum += newScore[i];
// }
//
// printf("newSum = %d,average = %lf\n",newSum,newSum/6.0);
//
//#pragma mark - 二维数组
// int array[行数][列数];

// int array[2][3] = {
// 1,2,3,
// 4,5,6
// };


// printf("%p\n",array);
// printf("%p\n",array[0][1]);
// printf("%p\n",array[1][0]);



// int array1[2][3] = {
// {1,2,3},
// {4,5,6}
// };
//
// int array2[][3] = {
//
// 1,2,3,4,5,6
// };

//得到数组中的最大值
// int array3[2][3] = {-1,-2,-3,
// -4,-5,-6};
//
// int max = array3[0][0];
//
// for (int i = 0; i < 2; i ++) {
// for (int j = 0; j < 3; j ++) {
//
// if (max < array3[i][j]) {
// max = array3[i][j];
// }
// }
// }
//
// printf("max = %d\n",max);


#pragma mark - 字符数组和字符串

//字符数组
// char character[3] = {'i','o','s'};
// for (int i = 0; i < 3; i ++) {
// printf("%c\n",character[i]);
// }
//
// char character1[4] = {'i','o','s','\0'};
// printf("%s\n",character1);
// //\0作为字符串的结束标示,没有实际作用
//
// char character2[4] = "ios";
// printf("%s\n",character2);


#pragma mark - 字符串的函数


// // char s;
// // scanf("%c",&s);
// // printf("input char:");
// // s = getchar();
// // putchar(s);
//
//
// char character[200];
//
//
// printf("input string:");
// // gets(character);
// // puts(character);

// // getchar();
// // putchar(<#int#>);
// //
// // gets(<#char *#>)
// // puts(<#const char *#>)
//

// //比较字符串的大小:strcmp
// /*
// > 0 第一个数比第二个数大
// = 0 第一个数等于第二个数
// < 0 第一个数比第二个数小
// */
//
// char s1[9] = "Abc";
// char s2[] = "aBC";
//
//
// printf("%d\n",strcmp(s1, s2));
//
// //strlen测量的是字符串的有效长度
//
// printf("%d\n",strlen(s1));
//
//
// // 拼接:给够足够的空间
// printf("%s\n",strcat(s1, s2));
//
// char string[100];
//
// //copy
// strcpy(string, s1);
//
// printf("%s\n",string);



#pragma mark - 冒泡排序

//冒泡排序(BubbleSort)的基本概念是:对一组数字进行从大到小或从小到大排序的一种算法。

//具体方法是:依次比较相邻的两个数,相邻数值两辆交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换,如果与我们期望的值,就不用交换。重复这样的过程,直到最后没有数值需要交换则排序完成。一般我么分为趟数和次数来算

// int array[4] = {5,4,3,2};
/*
第一趟:
第一次:4,5,3,2
第二次:4,3,5,2
第三次:4,3,2,5

第二趟
第一次:3,4,2,5
第二次:3,2,4,5

第三趟
第一次:2,3,4,5
趟数 = 元素 - 1

次数 = 元素个数 - 当前的趟数

*/

// //趟数
int array [4] = {5,4,3,2};
for (int i = 0; i < 4 - 1; ) {
//次数
for (int j = 0; j < 4 - i -1 ; j ++) {
//相邻两个数进行对比
if (array[j] > array[j + 1]) {
int temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
//打印数组
for (int i = 0; i < 4; i ++) {
printf("array[%d] = %d\n",i,array[i]);
}

return 0;
0 1