C温故之数组

内含经典问题:起泡法

一、一维数组


定义

类型说明符+数组名[ 常量(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语言中,数组名代表数组的起始位置。

字符处理函数

  1. stract 函数(字符串连接)
    两个字符串的地址合并,但首先合并前的长度要足够。
    stract(表达式1,表达式2)

2.strcpy和strncpy
strcpy为字符串复制函数:strcpy(字符数组1,字符串2)strcnpy是复制指定的前n个。
3.strcmp函数:比较长度
strcmp(1,2)按照两个字符串的ASCII码大小比较。(即在字典前的大于在字典后的,大写小于小写)
4.strlen函数(测量字符串实际长度的函数)

发布了13 篇原创文章 · 获赞 2 · 访问量 420

猜你喜欢

转载自blog.csdn.net/qq_44605933/article/details/104245542