c语言,求矩阵对角线元素的和,不知道哪里错了,求解
#include<stdio.h>#include<math.h>#include<stdlib.h>intmain(void){int*Matrix;intlen,ro...
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(void)
{
int *Matrix;
int len,row,sum=0;
scanf("%d",&len);
Matrix=(int*)malloc(pow(len,2)*sizeof(int));
int i;
for(i=0;i<pow(len,2);i++)
{
scanf("%d",&Matrix[i]);
}
for(row=0,i=0;i<pow(len,2);i++)
{
if((i+1)%len==0)
{
row++;
}
if(i==row*(len+1)||i==(row+1)*(len-1))
{
sum+=Matrix[i];
}
}
printf("%d",sum);
} 展开
#include<math.h>
#include<stdlib.h>
int main(void)
{
int *Matrix;
int len,row,sum=0;
scanf("%d",&len);
Matrix=(int*)malloc(pow(len,2)*sizeof(int));
int i;
for(i=0;i<pow(len,2);i++)
{
scanf("%d",&Matrix[i]);
}
for(row=0,i=0;i<pow(len,2);i++)
{
if((i+1)%len==0)
{
row++;
}
if(i==row*(len+1)||i==(row+1)*(len-1))
{
sum+=Matrix[i];
}
}
printf("%d",sum);
} 展开
1个回答
展开全部
修改后的程序及运行结果:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(void)
{ int *Matrix;
int len,row,sum=0;
scanf("%d",&len);
Matrix=(int*)malloc(pow(len,2)*sizeof(int));
int i,col;
for(i=0; i<pow(len,2); i++)
{ scanf("%d",&Matrix[i]);
}
for(row=0,i=0; i<pow(len,2); i++)
{ col=i%len;
if(row==col||row+col==len-1)
{ sum+=Matrix[i];
}
if(i%len==len-1)
{ row++;
}
}
printf("%d",sum);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询