printf函数格式字符:
C语言中对于不同类型的数据用不同的格式字符。常用的有以下几种格式字符:
%d 输出十进制整数
%o 八进制整形式输出整数
%ld 输出长整形数据
%md m为指定的输出字段的宽度
%x 十六进制数形式输出整数
%u 输出unsigned型数据,即无符号数 以十进制形式输出
%c 来输出一个字符
%s 输出一个字符串
%f 输出实数(包括单双精度),以小数形式输出
%e 指数形式输出实数
%p 以地址形式输出
一维数组的定义和使用
int array[6];
array[0]=100;
array[1]=90;
array[2]=80;
array[3]=70;
array[4]=60;
array[5]=50;
printf("%d\n", array[0]);
printf("%d\n", array[1]);
printf("%d\n", array[2]);
printf("%d\n", array[3]);
printf("%d\n", array[4]);
printf("%d\n", array[5]);
需要逐个输出太麻烦
数组的元素从0开始
int array[5] = { 100,90,80,70,60 };
printf("获得数组的首个地址:%d\n", array);
printf("获得数组的首个元素:%d\n", array[0]);
printf("获得数组元素的大小:%d\n", sizeof(array)); //int 4个字节 5个元素 4*5=20
printf("获得数组有几个元素:%d\n", sizeof(array)/sizeof(array));
printf("获得数组的第一个元素:%d\n", array[0]);
printf("获得数组的第二个元素:%d\n", array[1]);
printf("获得数组的第二个元素:%d\n", array[2]);
printf("获得数组的第二个元素:%d\n", array[3]);
练习数组中找出最大的值
int array[5] = { 100,90,80,70,60 };
int max = 0;
for (int i = 0; i < 5; i++)
{
if (array[i] > max)
{
max = array[i];
}
}
printf("%d\n", max);
练习数组元素逆置
int array[5] = { 100,90,80,70,60 };
int start = 0;
int end = sizeof(array) / sizeof(array[0]) - 1;
for (int i = 0; i < 5; i++)
{
printf("数组逆置前:%d ", array[i]);
}
while (start < end)
{
int temp = array[start];
array[start] = array[end];
array[end] = temp;
start++;
end--;
}
for (int i = 0; i < 5; i++)
{
printf("\n数组逆置后:%d", array[i]);
}
int array[] = { 4,2,8,0,5,7,1,3,9 };
int value = sizeof(array) / sizeof(array[0]);
for (int i = 0; i < value; i++)
{
printf("排序前:%d ", array[i]);
}
for (int i = 0; i < value - 1; i++)
{
for (int j = 0; j <value-1 - i; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i = 0; i < value; i++)
{
printf("排序后:%d ", array[i]);
}
冒泡排序
最常用的排序算法,对数组内元素进行排序
总结1:数组名的命名规范与变量名命名规范一致,不要和变量重名
总结2:数组中下标是从0开始索引
1. 可以统计整个数组在内存中的长度
2. 可以获取数组在内存中的首地址1. 可以统计整个数组在内存中的长度
2. 可以获取数组在内存中的首地址
二维数组定义
二维数组就是在一维数组上,多加一个维度。
二维数组定义的四种方式:
1. 数据类型 数组名[ 行数 ][ 列数 ];
2. 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
3. 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
4. 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};
//方式1
//数组类型 数组名 [行数][列数]
int arr[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d\n", arr[i][j]);
}
}
//方式2
//数据类型 数组名[行数][列数] = { {数据1,数据2 } ,{数据3,数据4 } };
int arr2[2][3] =
{
{1,2,3},
{4,5,6}
};
//方式3
//数据类型 数组名[行数][列数] = { 数据1,数据2 ,数据3,数据4 };
int arr3[2][3] = { 1,2,3,4,5,6 };
//方式4
//数据类型 数组名[][列数] = { 数据1,数据2 ,数据3,数据4 };
int arr4[][3] = { 1,2,3,4,5,6 };
system("pause");
return 0;
}
总结:在定义二维数组时,如果初始化了数据,可以省略行数