c语言

6.1 知识点

数组的定义:

类型说明符 数组名[ 常量 表达式]
例如:int a[100];

注意事项

  • 下标从 0 开始(注意下标越界问题)
  • 数组长度说明只能是常量表达式,不能有变量
  • 一个数组中的元素在内存中占用一片连续的存储但愿
  • 数组内的数据的类型均一致

举例

/**********/
int n = 10;
int a[n];		//非法(出现了变量n)
/**********/
#define n 10
int a[n];		//合法
/**********/
int a[2*5];		//合法
/**********/

数组元素的引用

数组名[下标]

数学中:

  • x1、x2

C 语言中:

  • 普通变量:x1、x2
  • 下标变量:x[1]、x[2]

注意事项

  • 下标可以是常量、变量和表达式
  • 不能对数组名整体赋值、输入、输出。只能逐个元素引用

对数组元素整体赋值

int a[10];

for(int i = 0; i <= 9; i++)
{
	a[i] = 0;
}

用数组实现 Fibonacci 数列的前 20 项

#include <stdio.h>
#defint N 20

void main()
{
	int i;
	int fib[N];

	fib[0] = fib[1] = 1;

	for(i = 2; i < N; i++)
	{
		fib[i] = fib[i-2] + fib[i-1];
	}

	for(i = 1; i < N; i++)
	{
		printf("%6d", fib[i]);

		if(i % 4 == 0)
		{
			printf("\n");
		}
	}
}

数组的初始化

int x[N] = {1, 2, 3, ...}	//特注:N指代一个常量表达式

下为以上的说明

  • N = '{}'内的数的个数 ==> 按顺序给数组内的元素初始化
  • N > '{}'内的数的个数 ==> 先按顺序给数组内的元素初始化,剩余不够的部分,默认初始化为 0
  • N = NULL(即没有 N) ==> 自动初始化,'{}'内有几个数,数组长度就会扩大到相应长度

排序算法

输出 10 个整数中的最小值及其位置

思路:

源码

#include <stdio>

void main()
{
	int i, j;
	int a[10];

	for(i = 0; i <= 9; i++)
	{
		scanf("%d", &a[i]);
	}

	k = 0;
	for(i = 1; i <= 9; i++)
	{
		if(a[i] < a[k])
		{
			k = i;
		}
	}

	printf("min = %d position = %d\n", a[k], k);
}

用选择法对 10 个整数从大到小排序(选择排序)

思路

源码

#include <stdio.h>

void main()
{
	int a[10];
	int i, j, k, t;

	printf("Input 10 numbers:\n");

	for(i = 0; i < 9; i++)
	{
		scanf("%d", &a[i]);
	}

	for(i = 0; i < 9; i++)
	{
		k = i;
		for(j = i + 1; j <= 9; j++)
		{
			if(a[j] < a[k])
			{
				k = j;
			}
		}
		t = a[i];
		a[i] = a[k];
		a[k] = t;
	}

	printf("The sorted numbers:\n");
	for(i = 0; i < 9; i++)
	{
		printf("%d", a[i]);
	}
}

6.2 知识点

二维数组的定义

类型说明符 数组名[常量表达式1] [常量表达式2]

二维数组的引用

表示方法

数组名[行下标][列下标]

说明

  • 其引用方法与一维数组的数组元素的引用类似
  • 通常用 for 语句的双重循环嵌套对二维数组元素逐个引用
  • 利用二维数组可以很方便地处理数学中的矩阵问题

二维数组的初始化

表示方法

类型说明符 数组名[常量表达式 1][常量表达式2] = {初始数据};

实现

  • 分行赋初值
  • 将所有数据写在一个{}
  • 部分元素赋初值
  • 若对全部元素都赋初值,定义数组时可以不指定行的大小,但必须指定列的大小

6.3 知识点

字符数组的定义

char 数组名[常量表达式];
char 数组名[常量表达式 1][常量表达式2];

字符数组的引用

  • 字符数组的引用也是使用下标,引用数组元素
  • 对字符数组不能整体赋值,但可以使用输入输出函数对字符数组进行整体输入和输出

字符数组的初始化

  • 全部元素赋初值
  • 可以只给部分元素赋初值

用字符串常量对字符数组初始化

  • 定义字符数组时忽略数组长度
  • 字符数组初始化时指定了数组的长度

本文作者:wedfrgt

本文链接:https://www.cnblogs.com/wedfrgt/p/16086217.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   wedfrgt  阅读(43)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示
  1. 1 404 not found REOL
  2. 2 悪魔の子(恶魔之子) Mochoc
  3. 3 冒険でしょでしょ? 平野綾
悪魔の子(恶魔之子) - Mochoc
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.