数组
打印数组
#include<stdio.h>
int main()
{
char arr[] = { "abcdef" };
printf("%c\n", arr[3]);//打印下标为3的数,就是d
int i = 0;
for (i = 0; i < 6; i++)//i为下标
{
printf("%c",arr[i]);//打印abcdef
}
return 0;
}
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int len = sizeof(arr) / sizeof(arr[0]);//len就是元素个数
int i = 0;
for (i = 0; i < len; i++)
{
printf("%d", arr[i]);
}
return 0;
}
打印数组的地址(发现数组在内存中是连续存放的)
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int sz = sizeof(arr) / sizeof(arr[0]);//len就是元素个数
int i = 0;
for (i = 0; i < sz; i++)
{
printf("arr[%d]=%p\n",i, &arr[i]);//%p是取地址
}
return 0;
}
二维数组
二维数组的创建和初始化(在初始化时列一定不能省略)
#include<stdio.h>
int main()
{
int arr[3][4] = { 1,2,3,4,5 };//三行四列的数组
char arr2[5][6] = { a,b,c,d,e,f };//五行六列的数组
return 0;
}
二维数组的使用(二维数组在内存中也是连续存放的)
#include<stdio.h>
int main()
{
int arr[3][4] = { 1,2,3,4,5 };//三行四列的数组
int i = 0;//i表示行
for (i = 0; i < 3;i++)
{
int j = 0;//j表示列
for (j = 0; j < 4; j++)
{
printf("%d", arr[i][j]);//打印i行j列
}
printf("\n");
}
return 0;
}
冒泡排序
#include<stdio.h>
void maopao(int arr[],int sz)//定义函数
{
int i = 0;
for (i = 0; i < sz - 1; i++)//sz-1是表示要比较多少趟
{
int j = 0;
for (j = 0; j < sz - 1 - i; j++)//比完一趟就要少一个数所以-i
{
if (arr[j] > arr[j+1])//比较两个数,大的话就交换
{
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
int main()
{
int arr[] = { 5,66,4,8,9,45,6,12,7,49 };
int sz = sizeof(arr) / sizeof(arr[0]);//sz是元素个数
int i = 0;
maopao(arr ,sz);
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
} //最后从小到大输出