希望能得到答复,c语言的4道题

用c语言编写下列程序:

  1. 定义MxN的矩阵,
    1)对该矩阵进行转置,然后输出
    2)保留该矩阵的右上三角进行输出
    3)保留该矩阵的左下三角进行输出
  2. 输入M1xN1的矩阵A,和M2xN2的矩阵B
    1)计算A X B, 并输出 (注意两个人矩阵不可乘的异常处理)
  3. 定义一个2x5x8的三维数组:
    1) 按存放的地址顺序遍历该数组并打印
    2)按存放的逆地址顺序遍历该数组并打印
    3)计算平均值、最大值、最小值并打印
  4. 定义字符数组S,通过gets输入一行任意的字符串,
    1)请计算字符串长度,以及sizeof(S),并打印输出
    2)请把该字符串按照ASCII码重新排序,并输出
    3)请输入一个字串,并在该字符串中查询它的位置。注:如果找不到,输出位置为-1

#include <stdio.h>
/*
    2、将二维数组int a[3][3]的行列转换后输出,如:
    1(0,0)    2(0,1)    3(0,2)    输出成:        1(0,0)    4(0,1)    7(0,2)
    4(1,0)    5(1,1)    6(1,2)                    2(1,0)    5(1,1)    8(1,2)
    7(2,0)    8(2,1)    9(2,2)                    3(2,0)    6(2,1)    9(2,2)
*/ 
void main6(){
    int i,j;
    int a[3][3]={
        {1,2,3},
        {4,5,6},
        {7,8,9}
    };
    for(i=0;i<3;i++){
        printf("%d\t%d\t%d\n",a[i][0],a[i][1],a[i][2]);
    }
    int t;//临时变量 
    //转换
    for(i=0;i<3;i++){
        for(j=0;j<i;j++){ //对角线下面部分与对角线上面部分数据进行交换 
            t = a[i][j];
            a[i][j]=a[j][i];
            a[j][i]=t;
        }
    } 
    printf("置换后的结果如下:\n"); 
    for(i=0;i<3;i++){
        printf("%d\t%d\t%d\n",a[i][0],a[i][1],a[i][2]);
    }
}