C语言——数组N0.6

一、数组的概念


在这里插入图片描述

在这里插入图片描述


二、一维数组的定义和引用

在这里插入图片描述
需要注意的是:
在这里插入图片描述
在这里插入图片描述
模拟数组:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数组练习题:

1、输入10个数字,判断最大的数并输出。

#include<stdio.h>;

void main(){
		int i,a[10],max;
		for(i=0;i<=9;i++){
			scanf("%d",&a[i]);
		}
		max=a[0];
		for(i=0;i<=9;i++){
			if(a[i]>max){
				max = a[i];
				}
			}
		printf("max=%d\n",max);
}

在这里插入图片描述


# 三、二维数组的定义和引用 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c6ab551dedb442e9bc4cc0fafd07dc36.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU4NTI4OA==,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](https://img-blog.csdnimg.cn/ff791e3414e842498501f97f2fa45517.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU4NTI4OA==,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](https://img-blog.csdnimg.cn/5f54ea51ba3c415a8f3acb3ce2a2d064.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU4NTI4OA==,size_16,color_FFFFFF,t_70)

在这里插入图片描述
初始化第三点例子:第一行第一个数是1,第二行第一个数是5,第三行第一个数是9。

在这里插入图片描述

在这里插入图片描述
例题1:
在这里插入图片描述

#include<stdio.h>

void main(){
	int i,j,sum=0,average=0;
	int a[4][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90}};
	//总成绩:
	for(i=0;i<4;i++){
		int sum=0;
		for(j=0;j<3;j++){
			sum=sum+a[i][j];
		}
	printf("第%d位的总成绩=%d\n",i+1,sum);
	sum=0;
	}
	//平均成绩:
	for(i=0;i<4;i++){
		for(j=0;j<3;j++){
		   sum=sum+a[i][j];
		}
		average=sum/3;
	   printf("第%d位的平均成绩=%d\n",i+1,average);
	   average=0,sum=0;
	}
}

在这里插入图片描述
例题2:
在这里插入图片描述

#include<stdio.h>

void main(){
	int i,j;
	int a[2][3]={{1,2,3},{4,5,6}};
	int b[3][2];

	//输出a数组
    printf("数组a:\n");
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
			printf("%3d",a[i][j]);
				b[j][i]=a[i][j];    //a[][] --> b[][]
			}
			printf("\n");
	}

	//输出b数组
	printf("数组b:\n");
	for(i=0;i<3;i++){
		for(j=0;j<2;j++){
			printf("%3d",b[i][j]);
		}
		printf("\n");
	}
}

在这里插入图片描述

例题3:
在这里插入图片描述
效果图:
在这里插入图片描述

#include<stdio.h>

void main(){
		int i,j,a[3][3];

		for(i=0;i<3;i++){
			for(j=0;j<3;j++){
			  printf("a[%d][%d] = ",i,j);
		      scanf("%d",&a[i][j]);   //键盘输入填充数组
		}
	}

        for(i=0;i<3;i++){
			for(j=0;j<3;j++){
				if( 1==i || 1==j){   //核心之处
					printf("%-6d",a[i][j]);
				}else{
					printf("%-6c",' ');
				}
		}
				printf("\n");
		}
}

在这里插入图片描述
PS:%-6d:输出字符串占6列,若字符串本身长度大于6,则将数字全部输出,若数字本身长度小于6,则右补空格
  %6d:输出字符串占6列,若数字本身长度大于6,则将字符串全部输出,若数字本身长度小于6,则左补空格


三、数组程序举例——二分法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#define M 10
#include<stdio.h>;

void main(){
	static int a[M]={-12,0,6,16,23,56,80,100,110,115};
	int n,low,mid,high,found;
	low=0;
	high=M-1;
	found=0;
	printf("Input a number to be searched:");
	scanf("%d",&n);
	
	//以上为预处理...
	
	while(low<=high){
			mid=(low+high)/2;
			if(a[mid]==n){  //找到了,结束循环
				found=1;
				break;
	        }
			else if(n>a[mid]){
				low=mid+1;
			}else{
				high=mid-1;
			}
	}
			if(found==1){
				printf("The index of %d is %d\n",n,mid);
			}else{
				printf("There is not %d\n",n);
			}	
}

在这里插入图片描述

over!

下课!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值