文章标题

不知道为什么,写了一个矩阵乘法的C程序,却只能用将行和列定义为常数,要不然无法输出……头痛。
#include<stdio.h>
#include<stdlib.h>
#define ROWS 3
#define COLS 3 
int main()
{
    int a,b,k,sum;

    /*int ROWS,COLS;
    printf("请输入矩阵的行数:");
    scanf("%d", &ROWS);
    printf("\n请输入矩阵的列数:");
    scanf("%d", &COLS);*/

    int A[ROWS][COLS],B[ROWS][COLS];
    float C[ROWS][COLS];
    printf("[请输入第一个矩阵(%d%d列)]\n",ROWS,COLS);
    for(a=0; a<ROWS; a++)
    {
        for(b=0;b<COLS; b++)
        {
            printf("请输入第%d行第%d列的数值:",a+1,b+1);
            scanf("%d", &A[a][b]);          
            }
        putchar('\n');
        }
    printf("[矩阵A为]\n");
    for(a=0; a<ROWS; a++)
    {
        for(b=0;b<COLS; b++)
        {
            printf("%d\t",A[a][b]);
            }
        putchar('\n');
        }       
    printf("[请输入第二个矩阵(%d%d列)]\n",ROWS,COLS);
    for(a=0; a<ROWS; a++)
    {
        for(b=0;b<COLS; b++)
        {
            printf("请输入第%d行第%d列的数值:",a+1,b+1);
            scanf("%d", &B[a][b]);          
            }
        putchar('\n');
        }
    printf("[矩阵B为]\n");
    for(a=0; a<ROWS; a++)
    {
        for(b=0;b<COLS; b++)
        {
            printf("%d\t",B[a][b]);
            }
        putchar('\n');
        }       
    for(a=0; a<ROWS; a++)/*实现在既定大小的矩阵下的矩阵乘法*/
    {
        for(b=0;b<COLS; b++)
        {
            for(k=0; k<COLS; k++)/*k控制的是A的列和B的行*/ 
            {
                sum+=A[a][k]*B[k][b];
                C[a][b]=sum;
                }
            }       
        }
    printf("[矩阵C为]\n");
    for(a=0; a<ROWS; a++)
    {
        for(b=0;b<COLS; b++)
        {
            printf("%.0f\t",C[a][b]);
            }
        putchar('\n');
        }       

    system("pause");
    return 0;

    } 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值