一、数组的概念
二、一维数组的定义和引用
需要注意的是:
模拟数组:
数组练习题:
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);
}
}