利用函数和传入指针的方式来解决

img

img

img


题目如图所示,要求我们使用传入指针的方式来解决字符串回文的问题,尽量不适用全局变量

矩阵相乘计算方式:
c[i][j] += a[i][k] * b[k][j];

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>



double** InnerP(int** a, int** b, int n)
{
    int i, j, k;
    double** p = (double**)malloc(sizeof(double*) * n);
    for (i = 0; i < n; i++)
    {
        p[i] = (double*)malloc(sizeof(double) * n);
        for (j = 0; j < n; j++)
        {
            p[i][j] = 0;
            for (k = 0; k < n; k++)
                p[i][j] += a[i][k] * b[k][j];
        }
    }
    return p;
}

int main()
{
    int i, j;
    int n;
    int** a, ** b;
    double** p;
    printf("请输入阶数n:");
    scanf("%d", &n);
    a = (int**)malloc(sizeof(int*) * n);
    b = (int**)malloc(sizeof(int*) * n);

    printf("输入A:\n");
    for (i = 0; i < n; i++)
    {
        a[i] = (int*)malloc(sizeof(int) * n);
        for (j = 0; j < n; j++)
            scanf("%d", &a[i][j]);
    }
    printf("输入B:\n");
    for (i = 0; i < n; i++)
    {
        b[i] = (int*)malloc(sizeof(int) * n);
        for (j = 0; j < n; j++)
            scanf("%d", &b[i][j]);
    }
    p = InnerP(a, b, n);
    
    printf("结果:\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            printf("%.0lf ", p[i][j]);
        printf("\n");
    }
    
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632