一到C语言题目,在线等,挺急的

【问题描述】文本文件data.txt中保存了一组整数,其中解释为:前两个数表示一个矩阵(记为A)的行数和列数(记为n和m),随后是矩阵的先按行再按列排列的元素数据,接着的... 【问题描述】文本文件data.txt中保存了一组整数,其中解释为:前两个数表示一个矩阵(记为A)的行数和列数(记为n和m),随后是矩阵的先按行再按列排列的元素数据,接着的两个数是有一个矩阵(记为B)的行数和列数(记为m和k),随后是矩阵B的先按行再按列的数据。请编程将两个矩阵分别读入到二维数组中,然后计算A和B的乘积(一个n行k列的矩阵)并保存到结果文件result.txt中。
【输入形式】
【输出形式】
【样例输入】设文件data.txt中的数据为:3 2 1 2 3 4 5 6 2 3 1 2 3 4 5 6 ,则表示的矩阵A为{{1, 2}, {3, 4}, {5, 6}},矩阵B为{{1, 2, 3}, {4, 5, 6}}
【样例输出】输出文件result.txt中的内容应为:3 3 9 12 15 19 26 33 29 26 33 29 40 51
【样例说明】
【评分标准】
展开
 我来答
我们必将知道
2015-12-02 · TA获得超过2171个赞
知道小有建树答主
回答量:1237
采纳率:92%
帮助的人:238万
展开全部
#include <stdio.h>

int main()
{
    int n,m,k,i,j,l,a[500][500],b[500][500],t;    //i,j,l为循环控制变量,t为临时变量
    FILE*in,*out;

    if((in=fopen("data.txt","r"))==NULL)        //打开文件
        return -1;
    if((out=fopen("result.txt","w"))==NULL)
        return -1;

    fscanf(in,"%d%d",&n,&m);                    //读入第一个矩阵
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            fscanf(in,"%d",&a[i][j]);

    fscanf(in,"%d%d",&m,&k);                    //读入第二个矩阵
    for(i=0;i<m;i++)
        for(j=0;j<k;j++)
            fscanf(in,"%d",&b[i][j]);

    fprintf(out,"%d %d ",n,k);
    for(i=0;i<n;i++)                           //计算乘法并输出到文件
        for(j=0;j<k;j++)
        {
            t = 0;
            for(l=0;l<m;l++)
                t += a[i][l]*b[l][j];
            fprintf(out,"%d ",t);
        }

    fclose(in);
    fclose(out);

    return 0;
}

请采纳并点赞。

更多追问追答
追问
不好意思,为什么c语言运行出错啊,能不能用c语言写呢
追答

这就是c语言写的。而且还是标准c。你是并不是没把data.txt放在当前目录下?

如果还有问题,把具体的报错给我。

附一张我运行的结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式