二维数组
定义形式为:类型名 数组名 【行长度】【列长度】

int a[6][6];

引用二位数的的元素要制定两个下表,及行下标和列下标:数组名【行下标】【列下标】

同一维数组相同其合理的取值范围是【0,行(列)长度-1】

在二位数组的输入中是按照如下顺序输入的

1 2 3
4 5 6
7 8

9

在定义二维数组的过程中,有两种方法

1.分行赋初值

类型名 数组名【行长度】【列长度】={{初值表0},......{初值表k},......}

int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}

此时为:1 2 3
           4 5 6
           7 8 9

与一维数组相同二维数组也可只为部分元素赋值

2.顺序赋值法

类型名 数组名【行长度】【列长度】={。。。。。。。。。。}

int a[3][3]={1,2,3,4,5,6,7,8,9}

等同于上者

二维数组的赋值一般使用循环嵌套

for(i=0;i<80;i++}
    for(n=0;i<80;i++)
        scanf("%d",&a[i][n]

一位字符数组是存放字符型数据的一维数组,所以他的定义初始化等均与一维数组相同,在此不再赘述

字符串是一串字符,以\0结尾,在c语言中被视为特殊的一维字符数组

他的定义一般为

while((str[i]=getchar())!='\n')
        i++;
    str[i]='\0';

 第一题

#include<stdio.h>
int main()
{
    int a[6][6];
    int i,j,n,m,temp,x;
    //为二维数组赋值
    printf("ENTER: x");
    for(n=0;n<6;n++)
        for(m=0;m<x;m++)
            scanf("%d",&a[i][j]);
    //行列互换
    for(n=0;n<6;n++)
        for(m=0;m<x;m++)
            if(i<=j)
            {
                temp=a[i][j];
                a[i][j]=a[j][i];
                a[j][i]=temp;
            }
    for(n=0;n<6;n++)
        for(m=0;m<6;m++)
            printf("&4d",a[i][j]);
        printf("\n");
    return 0; 
} 

 

第二题

#include <stdio.h>
int main()
{
    int i,j;
    int a[9][9];
    for(i=1;i<=9;i++)
        for(j=1;j<=9;j++)
            a[i-1][j-1]=i*j;
    for(i=0;i<9;i++)
    {
        for(j=0;j<9;j++)
        printf("%4d",a[i][j]);
    printf("\n");
    }
}

 

第三题

#include<stdio.h>
int main()
{
    char str[80];
    int i=0,temp=0;
    char m; 
    printf("ENTER string:");
    while((str[i]=getchar())!='\n')
        i++;
    str[i]='\0';
    printf("请输入要查询字母:");
    scanf("%c",&m);
    for(i=0;i<80;i++)
        if(str[i]==m)
        {
            printf("是第%d个字母",i);
            temp=1;
            break;
        }
    if(temp==0)
        printf("NOT FOUND\n");
    return 0;
}

 

第四题

#include <stdio.h>
int main()
{   
    char a[80];
    static char b[80];
    int  i,n,m,;
    printf("请输入字符串(80长度以内):\n");
    while((a[m]=getchar())!='\n')
        m++;
    a[m]='\0';
    for(i=0;i<80;i++)
        for(n=m;n>=0;n--)
            b[n]=a[i];
    for(i=0;i<80;i++)
        printf("%c",b[i]);
    return 0;
}