C语言编程:二维数组对角线求和 10
3个回答
展开全部
#include<stdio.h>
#define N 3
int main()
{
int i,j,sum=0;
int a[N][N]; //假设数组为3*3;
printf("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++)
sum +=a[i][i];
printf("sum=%d\n",sum);
getchar();
return 0;
}
#define N 3
int main()
{
int i,j,sum=0;
int a[N][N]; //假设数组为3*3;
printf("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++)
sum +=a[i][i];
printf("sum=%d\n",sum);
getchar();
return 0;
}
展开全部
#include <stdio.h>
#include <malloc.h>
typedef int ElemType;
void main()
{
ElemType **arr;
int n,m;
int i,j;
ElemType sum1=0,sum2=0;
printf("请分别输入行数和列数:\n");
scanf("%d%d",&n,&m);
//动态开辟二维数组
arr=(ElemType**)malloc(n*sizeof(ElemType*));
for(i=0;i<n;i++)
*(arr+i)=(ElemType*)malloc(m*sizeof(ElemType));
printf("请输入矩阵元素\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",(*(arr+i)+j));
printf("检查数据\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("%d ",*(*(arr+i)+j));
printf("\n");
}
printf("\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++){
if(i==j)sum1+=*(*(arr+i)+j);
if(i+j==m-1)sum2+=*(*(arr+i)+j);
}
printf("主对角线和%d与副对角线和%d差为%d\n",sum1,sum2,sum1-sum2);
//销毁动态开辟的二维数组
for(i=0;i<n;i++)
free(*(arr+i));
free(arr);
#include <malloc.h>
typedef int ElemType;
void main()
{
ElemType **arr;
int n,m;
int i,j;
ElemType sum1=0,sum2=0;
printf("请分别输入行数和列数:\n");
scanf("%d%d",&n,&m);
//动态开辟二维数组
arr=(ElemType**)malloc(n*sizeof(ElemType*));
for(i=0;i<n;i++)
*(arr+i)=(ElemType*)malloc(m*sizeof(ElemType));
printf("请输入矩阵元素\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",(*(arr+i)+j));
printf("检查数据\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("%d ",*(*(arr+i)+j));
printf("\n");
}
printf("\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++){
if(i==j)sum1+=*(*(arr+i)+j);
if(i+j==m-1)sum2+=*(*(arr+i)+j);
}
printf("主对角线和%d与副对角线和%d差为%d\n",sum1,sum2,sum1-sum2);
//销毁动态开辟的二维数组
for(i=0;i<n;i++)
free(*(arr+i));
free(arr);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
#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);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询