一维数组
定义
- 数组中的元素类型必须相同
- 类型 数组名[常量表达式]
#include<stdio.h>
void main()
{
int a[10+1];
}
#include<stdio.h>
#define A 10
void main()
{
int a[A];
}
#include<stdio.h>
void main()
{
int n;
scanf("%d",&n); //不合法
int a[n];
}
引用
下标从0开始
a[3]={10,20,30};
a[0]就是10
a[1]就是20
a[2]就是30
#include<stdio.h>
void main()
{
int a[10];
a[0] = 0; //将数组中的第一个元素赋值为0
printf("%d",a[0]);//输出第一个元素
}
初始化
#include<stdio.h>
void main()
{
int a[5]={0,1,2,3,4}; //全部赋值
int b[5]={0,1,2}; //没有赋值的是0
int c[5]={0}; //数组里全部元素为0
//对全部元素赋初值的时候可以不指定长度
int d[]={0,1,2,3,4} ;
}
#include<stdio.h>
void main()
{
int b[5];
int i;
for(i=0;i<5;i++)
{
scanf("%d",&b[i]);//循环输入
}
for(i=0;i<5;i++)
{
printf("%d",b[i]);//输出
}
}
例题
逆序
#include<stdio.h>
#define N 11
void main()
{
int array[N]={1,2,3,4,5,6,7,8,9,10,11};
int i=0,j=N-1,hollow;
while(i<j)
{
hollow=array[i] ;
array[i] = array[j];
array[j] = hollow;
i++;
j--;
}
for(i=0;i<N;i++)
{
printf("%4d",array[i]);
}
}
求最大值和下标
#include<stdio.h>
#define N 10
void main()
{
int array[N]={1,8,9,66,5,22,77,6,3,56};
int max = array[0],i,MA=0;
for(i=0;i<N;i++)
{
if(array[i]>max)
{
max = array[i];
MA = i;
}
}
printf("最大值为%d,下标是%d",max,MA);
}