
c语言程序 1、方阵求出主对角线上元素之和;2、辅对角线上元素之积;3方阵中最大的元素
2个回答
展开全部
直接写在main函数里了,可以将关键代码提取出来放到另外函数中,以数组名和方阵大小n作为参数。
另外,将辅对角线理解为从右上到左下的对角线了,不知对否?
#include <stdio.h>
int main(void)
{
int n = 3;
int a[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
int i = 0;
int j = 0;
int mainAdd = 0;
int subMul = 1;
int maxItem = a[0][0];
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
{
if(i == j)
mainAdd += a[i][j];
if(i+j == n-1)
subMul *= a[i][j];
if(maxItem < a[i][j])
maxItem = a[i][j];
}
printf("主对角线元素之和为 %d, 辅对角线元素之积为 %d, 最大元素为 %d\n", mainAdd, subMul, maxItem);
return 0;
}
另外,将辅对角线理解为从右上到左下的对角线了,不知对否?
#include <stdio.h>
int main(void)
{
int n = 3;
int a[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
int i = 0;
int j = 0;
int mainAdd = 0;
int subMul = 1;
int maxItem = a[0][0];
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
{
if(i == j)
mainAdd += a[i][j];
if(i+j == n-1)
subMul *= a[i][j];
if(maxItem < a[i][j])
maxItem = a[i][j];
}
printf("主对角线元素之和为 %d, 辅对角线元素之积为 %d, 最大元素为 %d\n", mainAdd, subMul, maxItem);
return 0;
}
追问
运行时没错。。我本不懂,不知道
追答
运行肯定不会有错,但副对角线是不是我说的那个我原来不确定,后来查了下,应该就是从右上到左下的对角线
展开全部
记得加分啊
void add(int arr[][4])
{int i,j,sum;
sum=0;
for(i=0,j=3-i;i<=3;i++,j--)
sum+=arr[i][j];
printf("\nSum of main diagonal is %d\n",sum);
}
void mul(int arr[][4])
{int i,j,sum;
sum=1;
for(i=0,j=i;i<=3;i++,j++)
sum*=arr[i][j];
printf("\nMultiplication of sub diagonal is %d\n",sum);
}
void max(int arr[][4])
{int i,j,sum;
sum=arr[0][0];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
sum=arr[i][j]>sum?arr[i][j]:sum;
printf("\nThe max number of the array is %d\n",sum);
}
main()
,,,};
int i,j;
int (*p)[4];
p=a;
printf("The 4X4 array is:\n");
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
printf("\t%2d",*(*(p+i)+j));
printf("\n");
}
add(a);
mul(a);
max(a);
}
void add(int arr[][4])
{int i,j,sum;
sum=0;
for(i=0,j=3-i;i<=3;i++,j--)
sum+=arr[i][j];
printf("\nSum of main diagonal is %d\n",sum);
}
void mul(int arr[][4])
{int i,j,sum;
sum=1;
for(i=0,j=i;i<=3;i++,j++)
sum*=arr[i][j];
printf("\nMultiplication of sub diagonal is %d\n",sum);
}
void max(int arr[][4])
{int i,j,sum;
sum=arr[0][0];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
sum=arr[i][j]>sum?arr[i][j]:sum;
printf("\nThe max number of the array is %d\n",sum);
}
main()
,,,};
int i,j;
int (*p)[4];
p=a;
printf("The 4X4 array is:\n");
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
printf("\t%2d",*(*(p+i)+j));
printf("\n");
}
add(a);
mul(a);
max(a);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询