内含经典问题:起泡法
一、一维数组
定义
类型说明符+数组名[ 常量(10)]表示从0-9的十个数组,并不存在数组元素为10的数组。
初始化
1.在定义的过程中赋予初值
可以用花括号直接定义赋值a[5]={0,1,2,3,4};也可以分开赋值:a[0]=0;a[1]=1;a[2]=2;…
自定义部分数组
计算机只会判断已定义的数组元素,默认未定义的数组元素为0
经典问题:冒泡法
对10个数从大到小排序(假设有n个数,一共要经过n-1趟比较,每i趟要进行n-i次比较)
#include<stdio.h>
int main ()
{
int a[10],i,j,t;
printf ("请输入10个任意整数:\n");
for (i=0;i<=9;i++)
scanf("%d",&a[i]);
for (j=0;j<=9;j++)
{
for (i=0;i<=9-j;i++)
{
if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for (i=0;i<10;i++)
{
printf("%d",a[i]);
printf("\n");
}
}
二、二维数组
定义
类型说明符+[ 常量表达式1 ] [ 常量表达式2 ],为表达式1 行,表达式2 列。也可以把a[0],a[1],a[2]分别当做3个一维数组名,计算机内存条数组是按行排列。
引用
1.全部定义:同一维,数组的元素都是从0开始。a[2] [2]={{1,2},{3,4}};
2.部分定义,没定义者按照0算。
三、字符数组
**注释: **
1.
如果是一个字符串,内中间含有空格。用数组分开表达。如:{How are you?}如果只一味的计算字节,char c[13],但是输出结果只是How,因为系统会把空格字符作为分隔符。
2.scanf函数在输入字符数组时,不要在加&,因为在c语言中,数组名代表数组的起始位置。
字符处理函数
- stract 函数(字符串连接)
两个字符串的地址合并,但首先合并前的长度要足够。
stract(表达式1,表达式2)
2.strcpy和strncpy
strcpy为字符串复制函数:strcpy(字符数组1,字符串2)strcnpy是复制指定的前n个。
3.strcmp函数:比较长度
strcmp(1,2)按照两个字符串的ASCII码大小比较。(即在字典前的大于在字典后的,大写小于小写)
4.strlen函数(测量字符串实际长度的函数)