2021-10-23

第6章数组

一维数组

1、定义形式:
类型名 数组名[数组长度];
2、引用
C语言规定,只能引用单个的数组元素,而不能一次引用整个数组。
引用形式:数组名 [下标];
下标的合理取值范围是[0,数组长度-1]。
注意:不要让下标越界,因为,一旦发生越界,就会把数据写到其他变量所占的储存单元中,甚至写入程序代码段,有可能造成不可预料的运行结果。
3、初始化
没有赋初值的元素值为0。
数组初始化时,如果对全部元素都赋初值,就可以省略数组长度,如int a[ ]={ 1,2,3,4,5};
4、应用

/*求数组中的最大值和其最小下标*/ 
#include <stdio.h>
int main()
{
	int i,j,n,index=0;//下标 
	int a[10];
	scanf("%d",&n);
	
	if(n>1&&n<=10){
		for(i=0;i<n;i++){
			scanf("%d",&a[i]);
			}
			
		for(j=0;j<n;j++){
			if(a[index]<a[j])
			{
				index=j;
				a[index]=a[j];
			}
		}
				printf("%d %d",a[index],index);
		
	}
	return 0; 
}

/*将数组中的数逆序存放并顺序输出*/ 
#include <stdio.h>
int main()
{
	int a[10];
	int i,j,n;
	scanf("%d",&n);
	
	if(n>1&&n<=10){
		for(i=0;i<n;i++){
			scanf("%d",&a[i]);
		}

		for(j=n-1;j>=0;j--){
			printf("%d",a[j]);
			if(j>0) printf(" ");
		} 
	}
	return 0;
}
/*定义两个数组并找出不同的元素*/
#include <stdio.h>
int main()
{
	int a[20],b[20],c[20],d[20];
	int i,j,n,m,k=0,o=0;
	
	scanf("%d",&n);
	if(n<=20){
		for(i=0;i<n;i++){
			scanf("%d",&a[i]);
		}
	}
	scanf("%d",&m);
	if(m<=20){
		for(i=0;i<m;i++){
			scanf("%d",&b[i]);
		}
		
	}
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			if(a[i]==b[j]) break;
		}
				if(j>=m){
					c[k]=a[i];
					k++;
				}
					
	}	
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			if(b[i]==a[j]) break;
		}
				if(j>=n){
					d[o]=b[i];
					o++;
				}		
				
	}
	printf("%d",c[0]);
	for(i=1;i<k;i++){
		for(j=0;j<i;j++){
			if(c[i]==c[j]) break;
			
		}
		if(j>=i){
			printf(" %d",c[i]);
		}
	}
	printf(" %d",d[0]);
	for(i=1;i<o;i++){
		for(j=0;j<i;j++){
			if(d[i]==d[j]) break;
			
		}
		if(j>=i){
			printf(" %d",d[i]);
		}
	}
	
		return 0;
}

二维数组

1、定义形式:
类型名 数组名[行长度] [列长度];
2、同一维数组。
3、初始化
在这里插入图片描述
4、应用

/*矩形运算*/
#include <stdio.h>
int main()
{
	int i,j,n;
	int a[10][10];
	int sum=0;
	
	scanf("%d",&n);
	if(n<=10&&n>=1){
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				scanf("%d",&a[i][j]);
			
				if(i!=(n-1)&&j!=n-1&&i+j!=n-1){
					sum=sum+a[i][j];
				}
			}
		}
		printf("%d",sum);
	}
	
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值