用函数Add()函数求一个4*4二维数组的主副对角元素之和,函数fun()求该二维数组的转置

C语言程序设计中 用函数Add()函数求一个4*4二维数组的主副对角元素之和,函数fun()求该二维数组的转置----二维数组

#include<stdio.h>
int a[4][4];
void Add(){
    int sum1=0,sum2=0;
    int i,j;
    for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{

			if(i==j) sum1+=a[i][j];
			if(i+j==3) sum2+=a[i][j];
		}
	}
	printf("主对角线元素之和:%d\n",sum1);
	printf("辅对角线元素之和:%d\n",sum2);
}
void fun()
{
    int i,j;
    for (i = 0; i < 4; i++)
    {
        for (j = i + 1; j < 4; j++)
        {
            int temp = a[i][j];
            a[i][j] = a[j][i];
            a[j][i] = temp;
        }
    }
    for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}
}
void main()
{
	int i,j;
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
    Add();
    fun();
}

 

#include<stdio.h>

void Add(int arry1[][4]) {
    int i,j,sum1=0,sum2=0;
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			scanf("%d",&a[i][j]);
			if(i==j) sum1+=a[i][j];
			if(i+j==3) sum2+=a[i][j];
		}
	}
	printf("主对角线元素之和:%d\n",sum1);
	printf("辅对角线元素之和:%d\n",sum2);

}



int fun(int arry1[][4],int arry2[][4])      //转置函数
{
	for(int i=0;i<M;i++)
		for(int j=0;j<N;j++)
			arry2[j][i]=arry1[i][j];
	return 0;
}


void main()
{  
    int a[4][4], b[4][4];
	Add(a);
    fun(a,b);
}

函数Add()函数求一个4*4二维数组的主副对角元素之和

思路:首先定义一个4*4二维数组,定义一个函数接受这个数组做参数,通过循环求和

其次 定义fun,实现转置,稍后下面提供代码

行列转置

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
	/*
		2、将二维数组int a[3][3]的行列转换后输出,如:
		1	2	3	输出成:	1	4	7
		4	5	6				2	5	8
		7	8	9				3	6	9
		提示:如果stu[i][j]表示第i行第j列,则转换之后应该在第j行第i列,即应该为与stu[j][i]的位置,所以循环输出j行,每行输出i列就可以	
	
	*/  
	int a[3][3];
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
			scanf("%d",&a[i][j]);	
	}  
	printf("------------------------------------\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			printf("%d\t",a[j][i]);	
		}	
		printf("\n");
	}
}

 

对角线之和

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
	/*
		3、编写程序计算n行n列的二维数组对角线上的元素的和。
		提示:行=列,行+列=n-1为两条对角线


		正对角线所有元素的下标i==j
		斜对角线所有元素的下标i+j=n-1
		
	
	*/
    
    int i,j;
    int a[4][4];
    int sum=0;
    for(i=0;i<4;i++)
    {
    	for(j=0;j<4;j++)
    	{
    		scanf("%d",&a[i][j]);	
    		if((i==j) || ((i+j)==3))
    		{
    			sum+=a[i][j];	
    		}
    	}	
    }
    printf("对角线上的和=%d\n",sum);
    
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632