1、通过实验掌握数组在内存中的存放形式;
2、掌握一维数组和二维数组的定义和数组元素的引用;
3、掌握各种字符串库函数的用法。
c语言中直接输出一个二维数组是用数组来访问输出的,例子:#include<stdio.h>
#define M 4
#define N 3
void main()
{
int a[M][N],i,j
for(i=0i<Mi++)
for(j=0j<Nj++)
a[i][j]=3*i+j
for(i=0i<Mi++)
{ for(j=0j<Nj++)
printf("%d\t",a[i][j])//直接用数组来访问
printf("\n")
}
}
除了可以直接访问,也可以用指针来访问,用指针指向该数组,便可进行对数组的读写操作。
main(){ int a[10],n,i,j,_________________; /*定义,下面出现了min
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",______________________); /*依次存储数据a[i]
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d",a[i]);
printf("\n");
for(i=0;i<_______________________;i++) /*最大为n-2,倒数第二个
{ min=i;
for(j=___________________;j<n;j++) /*从第二个开始 j=i+1
if(a[j]<a[min])_________________;/*a[i]=a[j]交换小的到前面
ax=____________________;
a[i]=a[min];
____________________=ax;} /*a[min],
printf("after sort:array\n");
for(i=0;i<ni++)
printf("%d", a[i]);
printf("\n");
}
这份代码有比较大问题,我觉得不科学
我修改了下
main()
{ int a[10],n,i,j,min;
printf("input n=");
scanf("%d",&n);
printf("input array a[0]a[l]… a[%d]:\n",n-1);
for(i=0;i<n;i++)
scanf("%d",a[i]);
printf("before sort:array\n");
for(i=0;i<n;i--)
printf("%d ",a[i]);
printf("\n");
for(i=0;i<n-2;i++)
{ min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
{ a[i]=a[j];
a[i]=a[min]; }
}
printf("after sort:array\n");
for(i=0;i<ni++)
printf("%d ", a[i]);
printf("\n");
}