对着改一下
输入4×4的数组,编写程序实现:
(1)求出对角线上各元素的和;(2)求出对角线上行、列下标均为偶数的各元素的积;(3)找出对角线上其值最大的元素和它在数组中的位置
请输入16个数组元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
对角线元素和为:68,对角线偶数下标元素积为:11,
对角线元素中最大元素为:16,在数组中下标为:a[3][3]。
Press any key to continue
#include "stdio.h"
// 1 2 3 4
// 5 6 7 8
// 9 10 11 12
// 13 14 15 16
main()
{
int i,j,sum=0,multi=1,maxA,mPosj,mPosi,a[4][4];
//输入
printf("请输入16个数组元素:\n");
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
//求对角线 元素和 偶数下标元素乘积 最大数
maxA = a[0][0];
for (i=0;i<4;i++)
{
sum += a[i][i];
if (i%2==0)
{
multi *= a[i][i];
}
if (maxA{
maxA = a[i][i];
mPosj = mPosi = i;
}
}
for (i=3,j=0;i>=0,j<4;i--,j++)
{
sum+=a[i][j];
if (i%2==0 && j%2==0)
{
multi *=a[i][j];
mPosj = mPosi = i;
}
if (maxA{
maxA = a[i][j];
mPosj = j;
mPosi = i;
}
}
printf("对角线元素和为:%d,对角线偶数下标元素积为:%d,\n对角线元素中最大元素为:%d,在数组中下标为:a[%d][%d]。\n",sum,multi,maxA,mPosi,mPosj);
}
#include
int main()
{
int i,j,maxA,mPosj,mPosi,a[4][5];
int b[5][4]; //存储转置
//输入
printf("请输入20个数组元素:\n");
for (i=0;i<4;i++)
{
for (j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
}
}
// 最大数
maxA = a[0][0];
mPosi =0;
mPosj =0;
for (i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
if (maxA {
maxA = a[i][j];
mPosi =i;
mPosj =j;
}
}
}
//转置
for (i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
b[j][i] = a[i][j]; //行列互换。
}
}
printf("最大元素为:%d,在数组中下标为:a[%d][%d]。\n",maxA,mPosi,mPosj);
//输出矩阵。
for (i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
printf("%3d",b[i][j]);
}
printf("\n");
}
getchar();
getchar();
return 0;
}