0
点赞
收藏
分享

微信扫一扫

C语言 day12

1.数组的基本认识:

int main() {
char arr[] = "abcdef";
char arr1[] = { 'a','b','c'};
printf("%d\n",sizeof(arr));//计算arr所占空间的大小
printf("%d\n", strlen(arr));//计算arr中字符串长度
printf("%d\n", strlen(arr1));//这里读到字符‘\0’才会停止,不然就是随机数
return 0;
}
int main() {
char arr[] = "abcdef";
int i = 0;
while (i < strlen(arr)) {
printf("%c\n", arr[i]);
i++;
}
return 0;
}
int main() {
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
while (i < sz) {
printf("%d\n", arr[i]);
i++;
}
return 0;
}
int main() {
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int le = sizeof(arr) / sizeof(arr[0]);
int i=0;
while (i < le) {
printf("&arr[%d]= %p\n",i,&arr[i]);//这里输出数组i下标的地址
i++;
}
return 0;

2.二维数组的初始化:

int main() {
int arr[1][2];//这里初始化的是一个一行两列的数组
int arr[2][3] = { {1,2,3},{4,5,6} };//二维数组里的变量书写
int arr[][] = { {1,3},{3,4 } };//这种书写形式是完全错误的
int arr[][4] = { {1,2,3,4},{6,7,8,9} };//二维数组至少要写出列里面的元素值
return 0;
}

3.二维数组的输出:

//二维数组的输出
int main() {
int arr[3][4] = { {1,2,3},{4,5,6},{7,8,9} };
for (int i = 0; i <= 2; i++) {
for (int j = 0; j <= 3; j++) {
printf("%d ", arr[i][j]);
//printf("&arr[%d][%d]= %p ",i,j, &arr[i][j]);
}
printf("\n");
}
return 0;
}

4.冒泡排序:
①计算出冒泡排序的次数(数组长度数减一)
②for循环进行数组数的比较
③进行输出

int math(int arr[],int sz) {
// int len = sizeof(arr) / sizeof(arr[0]); //如果用到sizeof()进行求数组的长度,则需要传地址,在这里的求法是错误的
int len = sz;
int flag = 1;
for (int i = 0; i < len-1; i++) {
for (int j = 0; j < len-1-i; j++) { //进行对数比较,没进行一次排序,对数减一
if (arr[j] < arr[j + 1]) {
int temp = arr[j+1];
arr[j + 1] = arr[j];
arr[j] = temp;
flag = 0;
}
if (flag == 1) {
break;
}
}
}
}


//冒泡排序
int main() {
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz= sizeof(arr) / sizeof(arr[0]);
math(arr,sz);
for (int i = 0; i < sz; i++) {
printf("%d ", arr[i]);
}
return 0;
}

5.数组名:数组名代表的是首元素的地址    

int main() {
int arr[] = { 1,2,3,4,5,6,7,8 };
printf("%p\n", arr); //数组名代表的是首元素的地址
printf("%d\n", arr[0]);
printf("%p\n", &arr[0]);
printf("%d", *arr);
return 0;
}

C语言 day12_循环

举报

相关推荐

0 条评论