高分求助,一段C语言程序(追加100分)

题目:实现两个矩阵的乘法。函数:intcompute_xy(intx,inty,int*a,int*b,inti,intj){intn=0;此段错误:说明语法错误intb... 题目:实现两个矩阵的乘法。
函数:
int compute_xy(int x,int y,int *a,int *b,int i,int j)
{
int n=0; 此段错误:说明语法错误
int buf=0;
int *p1,*p2;
p1=a; 此段错误:1,说明需要类型或存储器种类 2,p1类不匹配 3,未定义的符号a 4,非法的初始化
p2=b; 此段错误 同上
p1+=j*(x-1); 此段错误:1,类型不匹配在P1 2,说明语法错误
p2+=(y-1); 此段错误:同上
for(n=0;n<j;n++) 此段错误:说明语法错误
{
buf+=(*p1)*(*p2);
p1++;
p2+=i;
}
return buf; 此段错误:说明语法错误
}
主程序:
main()
{
int i=3,j=2;
int result; 此段错误:说明语法错误
int a[6]={1,2,3,4,5,6};
int b[6]={1,2,3,4,5,6};
result=compute_xy(3,3,a,b,i,j); 此段错误:1,未定义的符号result 2,未定义的符号a 3,非可移动指针任务在函数main
printf("%d\n",result);
}
我所有符号都是英文的,不存在符号问题,请各位高手帮我修改一下
展开
 我来答
百度网友05a5df392
2008-05-28 · 超过28用户采纳过TA的回答
知道答主
回答量:149
采纳率:0%
帮助的人:118万
展开全部
//改了下,在VC6下通过,没什么大错
#include <stdio.h>
int compute_xy(int x,int y,int *a,int *b,int i,int j)
{
int n=0; //此段错误:说明语法错误
int buf=0;
int *p1,*p2;
p1=a; //此段错误:1,说明需要类型或存储器种类 2,p1类不匹配 3,未定义的符号a 4,非法的初始化
p2=b; //此段错误 同上
p1+=j*(x-1);// 此段错误:1,类型不匹配在P1 2,说明语法错误
p2+=(y-1);// 此段错误:同上
for(n=0;n<j;n++) //此段错误:说明语法错误
{
buf+=(*p1)*(*p2);
p1++;
p2+=i;
}
return buf;// 此段错误:说明语法错误
}
//主程序:
int main()
{
int i=3,j=2;
int result; //此段错误:说明语法错误
int a[6]={1,2,3,4,5,6};
int b[6]={1,2,3,4,5,6};
result=compute_xy(3,3,a,b,i,j); //此段错误:1,未定义的符号result 2,未定义的符号a 3,非可移动指针任务在函数main
printf("%d\n",result);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高金山
2008-05-28 · TA获得超过1万个赞
知道大有可为答主
回答量:4101
采纳率:0%
帮助的人:1990万
展开全部
楼主的矩阵乘法写的一塌糊涂,我给你写一个经典的矩阵乘法的程序吧
代码如下:

/* 矩阵乘法 */
/*****************a=b*c******************/
#include<stdio.h>

#define X 3
#define Y 3

int a[X][Y];
int b[X][Y];
int c[X][Y];

//矩阵乘法的运算函数
void matrix(int b[][X],int c[][Y])
{
int i,j,k;

for(i=0;i<X;i++)
{
for(j=0;j<Y;j++)
{
for(k=0;k<Y;k++)
{
a[i][j]+=b[i][k]*c[k][j];
}
}
}
}

void main()
{
int i,j;

//输入矩阵b
printf("please input int matrix b[%d][%d]\n",X,Y);
for(i=0;i<Y;i++)
{
for(j=0;j<Y;j++)
{
scanf("%d",&b[i][j]);
}
}

//输入矩阵c
printf("please input int matrix c[%d][%d]\n",X,Y);
for(i=0;i<X;i++)
{
for(j=0;j<Y;j++)
{
scanf("%d",&c[i][j]);
}
}

//调用矩阵惩罚函数
matrix(b,c);

//输出结果矩阵a
printf("now the results matrix a[%d][%d]=b*c:",X,Y);
for(i=0;i<X;i++)
{
printf("\n");
for(j=0;j<Y;j++)
{
printf("%d ",a[i][j]);
}
}

getchar();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_野香蕉_
2008-05-28 · TA获得超过3306个赞
知道大有可为答主
回答量:3567
采纳率:50%
帮助的人:1377万
展开全部
你的矩阵是怎么样的?
矩阵乘法要求 第一个行数 和 第二个列数 相同。
你这个a[6] b[6]都是1行,没人看得懂。
都是一行的矩阵怎么乘
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
2008-05-28 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:3170万
展开全部
想问一句,楼主想要做什么。
两矩阵相乘的结果是一个矩阵,而不是一个数。

感觉有点乱。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喝超电友长跳堡27
2008-05-28 · TA获得超过282个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:0
展开全部
你是不是没有引用头文件啊?
#include <stdio.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式