整理代码的快捷键
1.单行对齐:命令模式下按两下等于号
2.多行对齐:shift+v选中后按一下等号
3.给一个起始行 在给个结束行:起始行=结束行
4.全局对齐:起始行=结束行(按gg回到开头? 按G回到结尾)
一组相同类型的数据的集合? 一次性定义多个变量? 本质上是相同类型变量的集合
语法
类型说明符? 数组名? [长量表达式]
1.连续性:指的是一片连续的空间
2.有序性:数组的元素是依次储存到内存中
3.单一性:单一类型的储存元素要么都是整形要么都是浮点型
不是语法问题,编译器不会报错
(1).整形说明符
整型
int ,shout ,long ,long long ;
浮点型
float ,double
字符
基本都是数据类型
(2).数组名
代表着一整个数据的集合(内存空的名字)
(3).[ ]
表示此时定义的是一个数组
(4).常量表达式
表示数组的长的长度即变量的个数
按照一定的顺序排序:升序和降序 一般选择升序
1.选择排序
思想:为一个合适的位置选择一个合适的数
2.冒泡排序
思想:相邻两个元素两两比较
3.求最大值
打擂台的思想
4.求次大值
1.数组概念
一种同类型数据的集合
2.语法
数据类型? 数组名[数组长度]
3.定义
int a [10];具有连续性 有序性 单一性
4.注意
a.数组名
是代表的数据类型如:int a[10];a代表的类型为int[10];a[0]代表的值就是首元素存放的地址
b.数组长度和下标
数组的长的长度表示存放多少个元素;下表表示的是偏移量
5.数组的初始化
int a[10]={1,2,3,4,5,6,7,8,9,10};表示一次性出初始化
int a[10]={1,2,3,4,5};表示部分初始化,并依次给到数组元素,没有给到的值,默认为零
将数组初始化为零
int a[10]={};和int a[10]={0};都表示都初始化为零;如果数组不初始化,则数组中都为垃圾值。
6.数组的整体赋值
数组赋值需要一个一个元素给到赋值
7.数组长度可以省略
前提是要有初始化的值如int a[ ]={1,2,3};编译器就会根据通过的值来确定数组长度
1.已知数组a[5]和b[5]中元素的值递增有序, 将两个数组合并为一个数组(有序)并完成打印。
(选择排序)
#include <stdio.h>
int main(void)
{
int i=0;
int j=0;
int a[5]={1,3,5,7,9};
int b[5]={2,4,6,8,10};
int c[10]={};
for (i=0;i<5;++i)
{
c[i]=a[i];
}
for(j=0;j<5;++j)
{
c[i]=b[j];
i++;
}
for (i=0;i<10;++i)
{
printf("%d ",c[i]);
}
putchar('\n');
int len=sizeof(c)/sizeof(c[0]);
for (i=0;i<len-1;++i)
{
for(j=i+1;j<len;++j)
{
if(c[j]<c[i])
{
int t=c[i];
c[i]=c[j];
c[j]=t;
}
}
}
for(i=0;i<len;++i)
{
printf("%d ",c[i]);
}
putchar('\n');
return 0;
}
上图左图位选择排序形式 右图为冒泡排序
冒泡排序:
#include <stdio.h>
int main(void)
{
int i = 0;
int j = 0;
int a[10] = {2,5,6,3,4,9,10,1,8,7};
int len = sizeof (a)/sizeof(a[0]);
for (i=0;i<len;++i)
{
printf("%d ",a[i]);
}
putchar('\n');
for (j=1;j<len;++j)
{
for (i=0;i<len-j;++i)
{
if(a[i]>a[i+1])
{
int t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for (i=0;i<len;++i)
{
printf("%d ",a[i]);
}
putchar('\n');
return 0;
}