c语言一维数组对角线求和

P=PiXi的求和 其中 令 i为1到n,
对PiXi求和,该怎么编程?请指教
不好意思,,打快了,是二维的。。。。。我错了

说明:一般求对角线之和都是针对矩阵的,即二维数组的行列数相同。下面就是以矩阵举的例:
#include<stdio.h>
#define N 4 /*改变N的值可以改变数组的大小*/
void main()
{
int a[N][N];
int i,j,sum=0;
printf("请输入一个4*4矩阵:");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%4d",a[i][j]);
printf("\n");
}
for(i=0;i<N;i++)
sum=sum+a[i][i];
printf("对角线和为:%d\n",sum);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-24
n维的都可以阿
int shuzu[n][n];
int i,sum;
for(i=0;i<n;i++)
sum=shuzu[i][i]+sum;
这样就可以了
如果你想输入数组不一开始就定义的话
可以这样
int shuzu[n][n];
int i,sum,j;
for(j=0;j<n;j++)
scanf("这里是多少?请输入%d",shuzu[j][j]);
for(i=0;i<n;i++)
sum=shuzu[i][i]+sum;
第2个回答  2009-04-24
#include<stdio.h>
#define n 8
void main()
{int i,j,sum1=0,sum2=0;
pirntf("please input :\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ scanf("%d",&a[i][j]); }
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(i==j) sum1+=a[i][j];/*主对角线和为sum1,次对角线之和为sum2*/
if(i+j==n-1) sum2+=a[i][j];
}
printf("sum1=%d\nsum2=%d\n",sum1,sum2);

}本回答被提问者和网友采纳
第3个回答  2009-04-24
一维数组哪来的对角线
相似回答