一.知识点

1.二维数组的定义和引用
   类型名 数组名[行长度][列长度];
   引用:数组名[行下标][列下标]  行下标合理范围值是[0,行长度-1],列下标合理取值范围是[0,列长度-1],所以类似九九乘法表就不能是a[9][9],要是a[10][10]。
2.二维数组的初始化
   分行赋值:类型名 数组名 [行长度][列长度]={{初值表0},...,{初值表k},...};
   顺序赋值:类型名 数组名 [行长度][列长度]={初值表}
3.矩阵术语和二维数组对应关系
   主对角线:从矩阵左上角到右下角连线(i==j)
   上三角:主对角线以上的部分(i<=j)
   下三角:主对角线以下的部分(i>=j)
   副对角线:从矩阵右上角到左下角的连线(i+j==N-1)
    N:设N为正整数,定义一个N行N列的二维数组a,二维数组a表示n*n的方阵。

二.实验心得
    要时刻注意二维数组行列下标是从0开始,但是矩阵一类的行列是从1开始的.所以导致我有时候行列的数不对,一旦错后面就成乱码了。
    对元素赋初始值是要注意书写顺序。

作业9代码

#include<stdio.h>
int main()
{
    int i,j;
    int a[10][10];
    
    for(i=1;i<10;i++){
        for(j=1;j<10;j++){
            a[i][j]=i*j;
            printf("%d*%d=%d\n",i,j,a[i][j]);
        }
        printf("\n");
    }
    return 0;    
}
#include<stdio.h>
int main()
{
    char a[80],b;
    int i;
    int k;
    printf("请输入一个字符:");    
    for(i=0;(a[i]=getchar())!='\n';i++);
    a[i]='\0';
    scanf("%c",&b);
    for(i=0;a[i]!='\0';i++)
        if(a[i]==b) k=i;
        printf("%d",k);
    if(k==-1) printf("Not Found!");
    return 0;        
}
#include<stdio.h>
int main()
{
    char a[80];
    int i,item;
    for(i=0;(a[i]=getchar())!='\n';i++);
    item=i;
    a[i]='\0';
    for(i=item;i>=0;i--)
        printf("%c",a[i-1]);
    printf("\n");
    return 0;
}
#include<stdio.h>
int main()
{
    int i,j,n,temp;
    int a[6][6];
    printf("Enter n:");
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            a[i][j]=i*n+j+1;         
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            if(i<=j)
           {
                temp=a[i][j];
                a[i][j]=a[j][i];
                a[j][i]=temp;
            }
    for(i=0;i<n;i++){
        for(j=0;j<n;j++)
            printf("%4d",a[i][j]);
        printf("\n");
    }
    return 0;    
}            

 

posted on 2016-11-23 10:39  BGD160809401  阅读(192)  评论(3编辑  收藏  举报