8.数组-一维数组【郝斌C语言入门学习】
1.为什么需要数组
为了解决大量同类型数据的存储和使用问题
为了模拟现实世界
# include <stdio.h> int main(void) { int i; int a[5] = { 1, 2, 3, 4, 5 }; //a数组的元素,5表示数组元素的个数,并且五个元素分别用a[0], a[1], a[2], a[3], a[4] for (i = 0; i < 5; ++i) printf("%d\t", a[i]); //printf("%d\n", a[100]);// - 698033904 return 0; } /* 在vc++6.0中的输出结果:1 2 3 4 5 */
2.数组的分类
(1)一维数组
1)怎样定义一维数组:
为n个变量连续分配存储空间
所有的变量数据类型必须相同
所有变量所占的字节大小必须相等
2)例子: int a[5];
一维数组名不代表数组中所有的元素,一维数组名代表数组第一个元素的地址。
3)A.初始化:
完全初始化:int a[5] = {1, 2, 3, 4, 5};
不完全初始化,未被初始化的元素自动清零:int a[5] = {1, 2, 3};
不初始化,所有元素是垃圾值:int a[5];
清零:int a[5] = {0};
错误写法:int a[5];
a[5] = {1, 2, 3, 4, 5};//错误
只有在定义数组的同时才能可以整体赋值,其他情况下整体赋值都是错误的。
int a[5] = {1, 2, 3, 4, 5};
a[5] = 100;//错误,因为没有a[5]这个元素,最大只有a[4]
int a[5] = {1, 2, 3, 4, 5};
int b[5];
如果要把a数组中的值全部复制给b数组
错误的写法: b = a; //错误,a代表数组a[0]的地址,b代表数组b[0]的地址
正确的写法: for (i=0; i<5; ++i)
b[i] = a[i];
B.赋值
# include <stdio.h> int main(void) { int i; int a[5]; //向数组赋值 printf("请输入:\n"); for (i=0; i<5; ++i) { scanf("%d", &a[i]); } //按序打印数组 printf("打印数组:\n"); for (i=0; i<5; ++i) { printf("%d\n", a[i]); } return 0; }
C.排序
D. 求最大值和最小值
E.倒置
# include <stdio.h> int main(void) { int a[7] = {1, 2, 3, 4, 5, 6, 7}; int i, j; int t; i = 0; j = 6; while (i <j) { t = a[i]; a[i] = a[j]; a[j] = t; ++i; --j; } //输出数组 for (i=0; i<7; ++i) { printf("%d\n", a[i]); } return 0; }
F.查找
G.插入
F.删除

浙公网安备 33010602011771号