[c语言] 跪求大佬帮忙分析代码

cheese143 2018-04-08 08:01:52

这是原问题

这是我的代码运行结果,找不出哪里不对,有可能是某个小地方脑抽了,麻烦帮我看看谢谢啦
#include <stdio.h>
int n;
struct node {
int x[10][10];
};
void f(struct node a,struct node b){
struct node temp;
int i,j,m;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
temp.x[i][j]=0;
for(m=0;m<n;m++){
temp.x[i][j]+=(a.x[i][m]*b.x[m][j]);
temp.x[i][j]=temp.x[i][j]%9973;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
a.x[i][j]=temp.x[i][j];
}
}
int main() {
int t,i,j,sum;
long long k;
struct node c,ans;
while(scanf("%d",&t)!=EOF){
while(t--){
scanf("%d %lld",&n,&k);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&c.x[i][j]);
ans.x[i][j]=c.x[i][j];
}
}
k--;
while(k>0){
if(k%2==1){
f(ans,c);
}
k/=2;
f(c,c);
}
sum=0;
for(i=0;i<n;i++){
sum+=ans.x[i][i];
sum=sum%9973;
}
printf("%d\n",sum);
}
}
return 0;
}
...全文
436 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang0635 2018-04-09
  • 打赏
  • 举报
回复
void f(struct node a,struct node b) 你想在这个函数中改变a的内容,参数应该是地址才是,写成 void f(struct node *pa,struct node b) 后面函数体中,以及mian中的调用部分做相应修改,再试试

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧