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");
}

运行结果:

C语言之方阵及对角线之和,布布扣,bubuko.com

时间: 2024-12-25 20:34:26

C语言之方阵及对角线之和的相关文章

C语言——打印魔方阵(每一行,每一列,对角线之和相等)

<一>魔方阵说明: 魔方阵是一个N*N的矩阵: 该矩阵每一行,每一列,对角线之和都相等: <二>魔方阵示例: 三阶魔方阵: 8   1   6 3   5   7 4   9   2 每一行之和:8+1+6=15: 3+5+7=15: 4+9+2=15: 每一列之和:8+3+4=15: 1+5+9=15: 6+7+2=15: 对角线之和:8+5+2=15: 6+5+4=15: <三>魔方阵计算规律(行,列以1开始): 1.将“1”放在第一行,中间一列: 2.从2开始至N

c语言练习38——求3*3矩阵对角线之和

#include<stdio.h> /*题目:求3*3矩阵对角线之和*/ int main(){ int i,j,k,t; int a[3][3]; while(1){ printf("请依次输入矩阵数字\n"); k=0; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) k

JAVA 基础编程练习题29 【程序 29 求矩阵对角线之和】

29 [程序 29 求矩阵对角线之和] 题目:求一个 3*3 矩阵对角线元素之和 程序分析:利用双重 for 循环控制输入二维数组,再将 a[i][i]累加后输出. package cskaoyan; public class cskaoyan29 { @org.junit.Test public void diagonal() { java.util.Scanner in = new java.util.Scanner(System.in); int[][] arr = new int[3][

输入一个正整数n (1&lt;n&lt;=10),生成 1个 n*n 方阵 求出对角线之和

#define _CRT_SECURE_NO_WARNINGS #include <Windows.h> #include <stdio.h> #include <stdlib.h> void main() { int n = 0; scanf("%d", &n); int a[50][50] = { 0 }; int result = 0; for (int i = 0; i < n * n; i++) { a[i / n][i %

任意阶魔方阵(幻方)的算法及C语言实现

写于2012.10: 本来这是谭浩强那本<C程序设计(第四版)>的一道课后习题,刚开始做得时候去网上找最优的算法,结果发现奇数和双偶数(4的倍数)的情况下算法都比较简单,但是单偶数(2的倍数但不是4的倍数)情况一直找不到明确的算法,就连百度百科对这一问题的解释也是“因非四的倍数作法相当复杂,在此只介绍四的倍数的作法”,而且连谭浩强那本书给的答案中竟然也变相的限定了n只能为奇数(题目并未说明).在广泛查找资料后,发现了一篇由中南大学信息科学与工程学院某教授和研究生撰写的论文,介绍了任意阶幻方的算

5.16魔幻方阵

Q:魔幻方阵指在n*n的矩阵中填写1~n*n这些数字,使得每行每列以及两个对角线之和均相等.编写一个程序,打印出一种三阶的魔幻方阵. 思路一: //用来判断i~q是否互不相等 int match(int i,int j,int k,int l,int m,int n,int o, int p,int q) { if(i!=j && i!=k &&i!=l&&i!=m &&i!=n &&i!=o && i!=p

任意阶幻方(魔方矩阵)C语言实现

魔方又称幻方.纵横图.九宫图,最早记录于我国古代的洛书.据说夏禹治水时,河南洛阳附近的大河里浮出了一只乌龟,背上有一个很奇怪的图形,古人认为是一种祥瑞,预示着洪水将被夏禹王彻底制服.后人称之为"洛书"或"河图",又叫河洛图. 南宋数学家杨辉,在他著的<续古摘奇算法>里介绍了这种方法:只要将九个自然数按照从小到大的递增次序斜排,然后把上.下两数对调,左.右两数也对调:最后再把中部四数各向外面挺出,幻方就出现了. (摘自<趣味数学辞典>) 在西方

R语言学习笔记:基础知识

1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) 表示把1 - 100的所有数字都给x这个变量 5.查看x的类型:>mode(x) 6.查看x的长度:>length(x) 7.将两个向量组成一个矩阵: >rbind(x1, x2)  注:r是row的意思,即行,按行组成矩阵. >cbind(x1, x2)  注c是column的意思,

输出n阶“魔方阵”

魔方阵:每一行.每一列和对角线之和均相等. 程序如下: 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 //输出魔方阵 6 int i,j,k,p,n,a[15][15]; 7 p=1;//用于判断输入的数字是否符合条件 8 while(p==1){ 9 printf("enter n (n=1--15):"); 10 scanf("%d",&n); 11 i