C语言程序设计
----教学过程篇二维数组
二维数组的定义格式:类型说明符 数组名 [常量表达式 ][常量表达式 ]
例如,int a[10][10];
char b[6][6];
二维数组在 C语言中定义的二维数组可以看成是由若干个一维数组组成,每个一维数组又有若干个元素组成;
例如,a[2][3]
可以理解为该数组有两个一维数组组成,每个一维数组又含有三个元素,
该二维数组总共有六个元素。
二维数组
二维数组元素的表示形式为:
数组名 [下标 ][下标 ]
下标可以是常数,可以是变量,还可以是表达式例如,a[I+1][j-2]
注意:
二维数组的数组元素的使用和普通变量相同,其第一个元素为 a[0][0]
二维数组
二维数组的初始化
1.分行给其赋值例如,int a[2][3]={{1,2,3},{4,5,6}}
该方法把第一个花括号中的元素赋给第一行元素,第二个花括号中元素赋值给第二行元素二维数组(程序一)
#include <stdio.h>
#include <stdlib.h>
main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j;
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{
printf("a[%d][%d]=%d ",i,j,a[i][j]); }
printf("\n"); }
system("pause"); }
二维数组
2.将所有数据写在一个花括号内,计算机自动从前到后按行赋值给数组元素例如,int a[2][3]={1,2,3,4,5,6};
3.对部分元素赋值例如,int a[2][3]={{1},{0,3}}
对各行中对应的元素赋值,其他元素的值为零二维数组(程序二)
#include <stdio.h>
#include <stdlib.h>
main()
{
int a[3][4]={{1},{0,6},{0,0,11}},i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("a[%d][%d]=%d ",i,j,a[i][j]);
}
printf("\n"); } system("pause"); }
二维数组
4.如果对全部的数组元素都赋初始值,则在定义二维数组时可以不指定第一维的长度,但必须指定第二维的长度,计算机会根据初始值的个数和第二维的长度,
自动算出第一维的长度例如,int a[][3]={1,2,3,4,5,6}
计算机自动会算出一维长度为 2
二维数组(程序三)
P141 T7.6
#include <stdio.h>
#include <stdlib.h>
#define n 10
main()
{
int i,j,a[n][n]={0};
for(i=0;i<n;i++)
{
a[i][0]=1;
}
二维数组(程序三)
for(i=1;i<n;i++)
{
for(j=1;j<=i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<(i+1);j++)
{
printf("%-4d",a[i][j]); }
二维数组(程序三)
printf("\n");
}
system("pause");
}
二维数组(程序四)
P141 T7.7
#include <stdio.h>
#include <stdlib.h>
#define n 5
main()
{
int a[n][n],i,j,t=1;
i=0;
j=((n-1)/2);
for(t=1;t<=n*n;t++)
{
if(((t-1)>=n)&&(((t-1)%n)==0))
二维数组(程序四)
{
i=i+2;
j=j-1;
}
if((i>=0)&&(j<=n-1))
{
a[i][j]=t;
// printf("a[%d][%d]=%d\n",i,j,a[i][j]);
i--;
j++;
continue;
}
二维数组(程序四)
if(i<0)
{
i=n-1;
a[i][j]=t;
// printf("a[%d][%d]=%d\n",i,j,a[i][j]);
i--;
j++;
continue;
}
if(j>n-1)
{
j=0;
二维数组(程序四)
a[i][j]=t;
// printf("a[%d][%d]=%d\n",i,j,a[i][j]);
i--;
j++;
continue;
}
}
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%6d",a[i][j]);
二维数组(程序四)
if(((j+1)%n)==0)
{
printf("\n");
}
}
}
system("pause");
}
----教学过程篇二维数组
二维数组的定义格式:类型说明符 数组名 [常量表达式 ][常量表达式 ]
例如,int a[10][10];
char b[6][6];
二维数组在 C语言中定义的二维数组可以看成是由若干个一维数组组成,每个一维数组又有若干个元素组成;
例如,a[2][3]
可以理解为该数组有两个一维数组组成,每个一维数组又含有三个元素,
该二维数组总共有六个元素。
二维数组
二维数组元素的表示形式为:
数组名 [下标 ][下标 ]
下标可以是常数,可以是变量,还可以是表达式例如,a[I+1][j-2]
注意:
二维数组的数组元素的使用和普通变量相同,其第一个元素为 a[0][0]
二维数组
二维数组的初始化
1.分行给其赋值例如,int a[2][3]={{1,2,3},{4,5,6}}
该方法把第一个花括号中的元素赋给第一行元素,第二个花括号中元素赋值给第二行元素二维数组(程序一)
#include <stdio.h>
#include <stdlib.h>
main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j;
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
{
printf("a[%d][%d]=%d ",i,j,a[i][j]); }
printf("\n"); }
system("pause"); }
二维数组
2.将所有数据写在一个花括号内,计算机自动从前到后按行赋值给数组元素例如,int a[2][3]={1,2,3,4,5,6};
3.对部分元素赋值例如,int a[2][3]={{1},{0,3}}
对各行中对应的元素赋值,其他元素的值为零二维数组(程序二)
#include <stdio.h>
#include <stdlib.h>
main()
{
int a[3][4]={{1},{0,6},{0,0,11}},i,j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("a[%d][%d]=%d ",i,j,a[i][j]);
}
printf("\n"); } system("pause"); }
二维数组
4.如果对全部的数组元素都赋初始值,则在定义二维数组时可以不指定第一维的长度,但必须指定第二维的长度,计算机会根据初始值的个数和第二维的长度,
自动算出第一维的长度例如,int a[][3]={1,2,3,4,5,6}
计算机自动会算出一维长度为 2
二维数组(程序三)
P141 T7.6
#include <stdio.h>
#include <stdlib.h>
#define n 10
main()
{
int i,j,a[n][n]={0};
for(i=0;i<n;i++)
{
a[i][0]=1;
}
二维数组(程序三)
for(i=1;i<n;i++)
{
for(j=1;j<=i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<(i+1);j++)
{
printf("%-4d",a[i][j]); }
二维数组(程序三)
printf("\n");
}
system("pause");
}
二维数组(程序四)
P141 T7.7
#include <stdio.h>
#include <stdlib.h>
#define n 5
main()
{
int a[n][n],i,j,t=1;
i=0;
j=((n-1)/2);
for(t=1;t<=n*n;t++)
{
if(((t-1)>=n)&&(((t-1)%n)==0))
二维数组(程序四)
{
i=i+2;
j=j-1;
}
if((i>=0)&&(j<=n-1))
{
a[i][j]=t;
// printf("a[%d][%d]=%d\n",i,j,a[i][j]);
i--;
j++;
continue;
}
二维数组(程序四)
if(i<0)
{
i=n-1;
a[i][j]=t;
// printf("a[%d][%d]=%d\n",i,j,a[i][j]);
i--;
j++;
continue;
}
if(j>n-1)
{
j=0;
二维数组(程序四)
a[i][j]=t;
// printf("a[%d][%d]=%d\n",i,j,a[i][j]);
i--;
j++;
continue;
}
}
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%6d",a[i][j]);
二维数组(程序四)
if(((j+1)%n)==0)
{
printf("\n");
}
}
}
system("pause");
}