类型符
数组名
[常量表达式]
类型符
数组名
[常量表达式];
int a[4+6];
int b[10];
数组名
[下标]
-例如: a[1] = 10;
a[0]=a[5]+a[7]-a[2*3];
数组的复制
#include<stdio.h>
void main()
{
int a[10] = { 1,2,3,4,5,6,7,8,9,10 }, b[10];
for (int i = 0; i < 10; i++){
b[i] = a[i];
printf("%d ", b[i]);
}
}
类型说明符 数组名[常量表达式] = {值,值,...,值};
int a [10] ={0,1,2,3,4,5,6,7,8,9};
int a [10] ={0,1,2,3,4};
int a[10]={0,0,0,0,0,0,0,0,0,0};
或 int a[10]={0};
int a[5]={1,2,3,4,5};
可以写成: int a[]={1,2,3,4,5};
for( i=0;i<10;i++)
scanf_s( "%d", &a[il);
对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输
#include<stdio.h>
void main()
{
int a[10], i;
for (i = 0; i < 10; i++)
a[i] = i;
for (i=9; i >= 0 ; i--)
printf("%d ",a[i]);
}
将数组中各元素交换,将数组的第一个元素与最后一个交换,第二个元素与倒数第二个交换,以此类推。
#include<stdio.h>
void main()
{
int a[10], i,j;
for (i = 0; i <= 9; i++)
a[i] = i;
for (i = 0; i < 10 / 2; i++) {
j = a[i];
a[i] = a[9 - i];
a[9 - i] = j;
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
}
求一维数组中最大元素及其下标。
#include<stdio.h>
void main()
{
int a[10], i,j,max;
for (i = 0; i < 10; i++)
scanf_s("%d",&a[i]);
max = a[0];
for (i = 0; i <10; i++)
if (a[i]>max){
max = a[i];
j = i;
}
printf("max=%d,j=%d\n", max, j);
}
用数组处理求Fibonacci数列问题
#include<stdio.h>
void main()
{
int i;
int f[10] = { 1,1 };
for (i = 2; i < 10; i++)
f[i] = f[i - 2] + f[i - 1];
for (i = 0; i < 10; i++)
{
printf("%12d\n",f[i]);
}
}
练习
1、以下对一维数组a的正确说明是___。
(A)int a(10);
(B)int n=10,a[n];
(C)int n;scanf("%d",&n);
(D)
#define SIZE 10
int a[SIZE];
2、以下能对一维数组a进行正确初始化的语句是___。
(A) int a[10]= (0,0,0,0,0);
(B)int a[10] = {};
(C)int a[] = {0};
(D)int a[10] = {10*1};
3、当从键盘输入18并回车后,下面程序的运行结果是___。
#include<stdio.h>
main()
{
int x, y, i, a[8], j, u, v;
scanf_s("%d", &x);
y = x;
i = 0;
do {
u = y / 2;
a[i] = y % 2;
i++;
y = u;
}while (y >= 1);
for (j = i - 1; j >= 0; j--)
printf("%d", a[j]);
}
(A)10010
(B)10001
(C)01001
(D)00110
答案
1、D 2、C 3、A