C语言知识串讲(CH6)

1.一维数组的定义和引用,一维数组的初始化及程序。
2.二维数组的定义和引用,二维数组的初始化及程序。
3.字符数组的定义、引用及初始化,字符串和字符串结束标志,字符数组的输入输出,字符数组编程应用。

附:有关数组的部分编程题

1.求3*4矩阵中的最大值

#include<stdio.h>

int maxValue(int arr[][4]){
    int i,j,max;
    max=arr[0][0];
    for(i=0;i<3;i++){
        for(j=0;j<4;j++){
            if(arr[i][j]>max){
                max=arr[i][j];
            }
        }
    }
    return max;
}

int main(){
	int a[3][4]={{5,3,2,7},{56,34,28,9},{12,88,45,4}};
	printf("输出的最大值是:%d", maxValue(a));
}

2.输出n阶奇数魔方阵

#define N 5
#include<stdio.h>
int main()
{
int a[N][N],i,j,k;
for(i=0;i<N;i++)    /*先处理第一行*/
for(j=0;j<N;j++){
  a[i][j]=0;     /*先令所有元素都为0*/
}
j=(N-1)/2;     /*判断j的位置*/
a[0][j]=1;    /*将1放在第一行中间一列*/
for(k=2;k<=N*N;k++)    /*再从2开始处理*/
{
  i=i-1;    /*存放的行比前一个数的行数减1*/
  j=j+1;    /*存放的列比前一个数的列数加1*/
  if((i<0)&&(j==N))   /*前一个数是第一行第N列时,把下一个数放在上一个数的下面*/
  {
    i=i+2;
    j=j-1;
  }
  else
  {
    if(i<0)    /*当行数减到第一行,返回到最后一行*/
    i=N-1;
    if(j>N-1)   /*当列数加到最后一行,返回到第一行*/
    j=0;
  }
  if(a[i][j]==0)     /*如果该元素为0,继续执行程序*/
    a[i][j]=k;
  else     /*如果该元素不为0,就说明要填的数的位置已经被占,则该数放在上一个数的下面*/
  {
    i=i+2;
    j=j-1;
    a[i][j]=k;
  }
}
for(i=0;i<N;i++)    /*输出数组*/
{
  for(j=0;j<N;j++)
   printf("%5d",a[i][j]);
  printf("\n\n");
}
}
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页