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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步