一 数组:
1.数组有 相同数据类型 组成的一组有序的数据
数组定义: 数据类型 数组名 [元素个数]{数值1,数值2,数值3….}
P: int arr[5]={1,2,3,4,5} 整数型 浮点型 float arr[5]={2.1,5.4,5.2}
[]数组元素的个数,里面只能放常量表达式,不能使用变量
2. 数组元素的访问是可以在[]内放变量的 用 for 打印数组叫遍历
int arr4 [6]={1,2,3,4,5,6};
for (int i =0; i < 6; i ++)
{
printf("arr4[%d]:%d\n",i,arr4[i]);
}
- 数组的定义和使用总结
1⃣ 数组的定义是由 类型修饰符,使用不需要
2⃣定义时[常量表达式],使用时候任何都可以
3⃣ 定义时[]内可以不写任何数据,使用必须加[]常量/变量不能省略
4.给 a赋值
a1[i ]=arc4random()%(40-20+1)+20;
- sizeof 不是函数 ,一个运算符 返回计算数据类型,变量在内存中占得字节数
unsigned long length =sizeof(long);
printf(" long:%lu",length);
%lu 是 unsigned long 的修饰符
int arr11[] = {1,2,3,4,5,6};
//计算数组元素个数
unsigned long len = sizeof(arr11)/sizeof(int);
printf("arr11元素个数:%lu\n",len);
二 冒泡排序
1. 公式:如果前一个元素大于大于后一个元素的值
for (int i =0; i <length -1; i ++) {
for (int j = 0; j < 3-i -1; j ++)
if (arr[i]> arr[i+1]) {
// 交换两个变量
int temp = 0;
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
printf("%d\n",arr[i ]); }
三 字符串
1⃣ strcpy(字符串1, 字符串2) 字符串拷贝函数
//将字符串2的内容,拷贝到字符串1中,从第一个位置开始拷贝
//一定要保证字符数组1的长度足够大
char s1[10] = "iPhone";
char s2[10] = "lanou";
strcpy(s1, s2);
printf("%s\n",s1);
2⃣ strcat(字符串1, 字符串2) 字符串的拼接
//把字符串2拼接到字符串1的第一个\0所在的位置,要保证前一个数组的长达足够大
char s3[40] = "hello world";
char s4[] = " I am coming";
strcat(s3, s4);
printf("%s\n",s3);
3⃣ strcmp(字符串1, 字符串2)
// 字符串的比较函数
// 字符串的比较,比较的时对应为值的字符在ASCII表中的值,如果返回值为正数,字符串1大,如果返回值是负数,字符串2大,返回值为0,(1,它们两个相等,2,它们同一位置上都是\0)
char s5[] = "ABCeee";
char s6[] = "ABDrrr";
printf("%d",strcmp(s5, s6));
// 它比较的是对应位置字符ASCII值,一旦发现对应位置的ASCII值不相等直接返回
for (int i = 0; i < length-1;i++ ) {
for (int j = 0; j <length -i-1; j++) {
if (strcmp(stus[j].name,stus[j+1].name)<0){
char temp[20];
strcmp(temp ,stus[j].name );
strcmp(stus[j].name,stus[j+1].name);
strcmp(stus[j+1].name,temp);