C语言一维数组和二维数组(入门)

这篇博客详细介绍了C语言中一维和二维数组的定义、初始化方法,并通过实例展示了如何使用一维数组实现斐波那契数列和冒泡排序,以及二维数组的行列元素交换和查找最大值的功能。这些内容对于理解C语言数组操作非常有帮助。
摘要由CSDN通过智能技术生成

一、一维数组

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;
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值