首页 > 代码库 > C语言之方阵及对角线之和

C语言之方阵及对角线之和

#include<stdio.h>
/*
两种方式实现生成一个10*10的方阵,然后输出此方阵对角线上元素之和。
*/
#define N 10
void doubleFor();
void main()
{
	doubleFor();

}

//双重for循环,二位数组的方式实现
void doubleFor()
{
	int num[N][N];
	for (int a = 0; a < N; a++)
	{
		for (int b = 0; b < N; b++)
		{
			num[a][b] = N*a + b + 1;
			printf("%-5d", num[a][b]);
		}
		printf("\n");
	}

	//对角线的和
	int sum = 0;
	for (int i = 0; i < N; i++)
	{
		sum += num[i][i];  //对角线,正好是a=b时
	}
	printf("\n对角线的和为:%d", sum);
	system("pause");
}

运行结果




第二种方式:

#include<stdio.h>
/*
两种方式实现生成一个10*10的方阵,然后输出此方阵对角线上元素之和。
*/
#define N 10
void oneFor();
void main()
{
	oneFor();


}

//双重for循环,二位数组的方式实现
void doubleFor()
{
	int num[N][N];
	for (int a = 0; a < N; a++)
	{
		for (int b = 0; b < N; b++)
		{
			num[a][b] = N*a + b + 1;
			printf("%-5d", num[a][b]);
		}
		printf("\n");
	}

	//对角线的和
	int sum = 0;
	for (int i = 0; i < N; i++)
	{
		sum += num[i][i];  //对角线,正好是a=b时
	}
	printf("\n对角线的和为:%d", sum);
	system("pause");
}


运行结果




同时运行:

#include<stdio.h>
/*
两种方式实现生成一个10*10的方阵,然后输出此方阵对角线上元素之和。
*/
#define N 10
void doubleFor();
void oneFor();
void main()
{
	doubleFor();
	oneFor();

}

//双重for循环,二位数组的方式实现
void doubleFor()
{
	int num[N][N];
	for (int a = 0; a < N; a++)
	{
		for (int b = 0; b < N; b++)
		{
			num[a][b] = N*a + b + 1;
			printf("%-5d", num[a][b]);
		}
		printf("\n");
	}

	//对角线的和
	int sum = 0;
	for (int i = 0; i < N; i++)
	{
		sum += num[i][i];  //对角线,正好是a=b时
	}
	printf("\n对角线的和为:%d", sum);
	system("pause");
}


//用单循环实现
void  oneFor()
{
	int num[N][N];
	int a = 0;
	for (int i = 0; i < N*N; i++)
	{
		num[i / N][i%N] = ++a;
		printf("%-5d",num[i/N][i%N]);
		if ((i+1)%N == 0) //每N个换行
		{
			printf("\n");
		}
	}

	
	system("pause");
}


运行结果: