一、一维数组
1.一维数组的定义
据类型说明符 数组名[常量表达式]注n=10把n放在常量表达式中也是不行的[n]
int a[10];
int n=10;
int a[n]这是错的
利用for循环赋值和遍历
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int i, b[10];
for (i = 0; i <= 9; i++) {
b[i] = i;
}
for (i = 9; i >= 0; i--) {
printf("%d\n", b[i]);
}
return 0;
}
9
8
7
...
2.一维数组的初始化
//1.int a[5]={0,1,2,3,4}按定义
//2.int a[5]={0,1}部分初始化已经定义过长度了未赋值元素补零
//3.int a[]={0,1,2,3,4}会根据元素个数自动分配长度
3.一维数组简单实例
1兔子数列(斐波那契数列)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int i;
int a[20] = { 1,1 }; //对前两个元素进行赋值
for (i = 2; i < 20;i++) {
a[i] = a[i - 2] + a[i - 1]; //先求出f[2]~f[19]的值
}
for (i = 0; i <20;i++) {
if (i % 5 == 0) //输出五个数换行
printf("\n");
printf("%12d",a[i]);
}
return 0;
}
2冒泡排序
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int a[10];
int i, j, k;
printf("请输入10个数:\n");
for (i = 0; i <= 9; i++) {
scanf("%d",&a[i]);
}
printf("\n");
for (j = 0; j < 9;j++) {//进行9次循环
for (i = 0; i < 9 - j;i++) {//每一次中进行9-j次比较
if (a[i] > a[i + 1]) {//相邻两数进行比较
k = a[i];
a[i] = a[i + 1];
a[i + 1] = k;
}
}
}
printf("排序后:");
for (i = 0; i < 10;i++) {
printf("%d ",a[i]);
}
return 0;
}
二、二维数组
1.二维数组的定义
类型说明符 数组名[常量表达式][常量表达式];
int a[3][4] //此为三行四列的二维数组
可以用a[i][j]引用
2.二维数组的初始化
//1.int a[[3]4]={{0,1,2,3},{0,1,2,3},{0,1,2,3}}按定义
//2.int a[3][4]={{0},{},{2}}部分初始化已经定义过长度了未赋值元素补零
//3.int a[][4]={{0},{1},{2}}会根据元素个数自动分配长度
3.二维数组简单程序
1.二位数组行和列元素的交换
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int a[2][3] = { {1,2,3},{4,5,6} };
int b[3][2],i,j;
printf("数列a:\n");
for (i = 0; i <= 1;i++) { //处理a数组中的一行中的各元素
for (j = 0; j <= 2;j++) { //处理a数组中的一列中的各元素
printf("%5d",a[i][j]);//打印a数组
b[j][i]=a[i][j]; //a数组行和列交换
}
printf("\n");
}
printf("数列b:\n");
for (i = 0; i <= 2; i++) { //处理b数组中的一行中的各元素
for (j = 0; j <= 1; j++) { //处理b数组中的一列中的各元素
printf("%5d", b[i][j]); //打印b数组
}
printf("\n");
}
return 0;
}
2找出数组中最大的元素以及所在的行号和列号
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int i, j, row, colum,max;
int a[3][4] = { {1,2,3,6},{8,6,4,3},{0.12,89,36} };
max = a[0][0];
for (i = 0; i < 3;i++) {
for (j = 0; j < 4;j++) {
if (a[i][j]>max) {
max = a[i][j];
row = i;
colum = j;
}
}
}
printf("max=%d\nrow=%d\ncolum=%d \n", max, row, colum);
return 0;
}