生成一个n*n的方阵,然后输出此方阵对角线上元素之和

//输入一个正整数n(1<n<10),根据以下公式生成一个n*n的方阵,然后输出此方阵对角线上元素之和

//公式为a[i][j]=i*n+j+1 (0=<i<n,0=<j<n)

源代码:

#include<stdio.h>
#include<stdlib.h>
#define N 10

//输入一个正整数n(1<n<10),根据以下公式生成一个n*n的方阵,然后输出此方阵对角线上元素之和
//公式为a[i][j]=i*n+j+1 (0=<i<n,0=<j<n)

int main()
{
	int a[N][N]={0};
	int sum1 = 0;//主对角线
	int sum2 = 0;//副对角线
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
		{
			a[i][j]=i*N+j+1;
			printf("%d\t",a[i][j]);//一边赋值一边打印输出
		}
		printf("\n");
	}
	//求对角线元素之和
	for(int i=0;i<N;i++)
	{
		sum1 += a[i][i];//主对角线元素累加
		if(i!=(N-1-i))//为了防止最中间那个元素已被累加
		{
			sum2 +=a[i][N-1-i];//副对角线元素累加
		}

	}
	printf("两条对角线元素之和sum=%d\n",(sum1+sum2));

	return 0;
} 

如何分别求主对角线和副对角线则if(i!=(N-1-i))那个判断就不需要了。

时间: 2024-08-08 13:57:00

生成一个n*n的方阵,然后输出此方阵对角线上元素之和的相关文章

如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)

Maven的archetype Plugin可能大家都听过,但不一定都能很好地用好它.缺省地如果你使用 mvn archetype:generate 会从maven的Repository里查找所有支持的arche types,大概有500~600个.正因为是太多了,所以查找起来很是不方便. 其实平时常用的arche type也就那么几个.像我会用到的: 1.simple start 2. web app 3. Groovy basic 很自然的就会考虑,是不是能什么简便的方法只需要从这3个组成的

今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下

要实现二维码登录,需要解决2个技术,1.需要js websocket 与后台php实现长连接技术 2.实现二维码生成技术 要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要实现长连接技术,经过多方查资料,有2中方式 1种是nodejs来实现后台服务,另外一种是 利用php的一个扩展 swool来实现后台服务,本例采用的是后者swool, 第一步,在打开登录页面的时候,利用php生成一个唯一 sign,用js的websocket技术连接上后台服务,并且把sign发送给后

随机生成一个5位以内的数,然后输出该数共有多少位,每位分别是什么

//方法一: <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 函数名:randomFiveNumber * 参数:无 * 作业:随机生成一个5位以内的数,然后输出该数共有多少位,每位分别是什么 */ function ran

求一个n阶方阵对角线元素之和

求一个n阶方阵对角线元素之和? public class shuixian { public static void main(String[] args) {  // TODO 自动生成的方法存根  int sum=0;  Scanner reader=new Scanner(System.in);  System.out.println("请输入方阵的阶数");  int n=reader.nextInt();  int[][] a=new int[n][n];  for(int

Java Web项目--使用Servlet生成一个页面

为了生成一个servlet对应的网页.我们需要新建一个web.xml,其中将会放置servlet的相关信息.web.xml文件放置在WebContent/WEB-INF/目录下.(我们在Eclipe中新建一个Dynamic Web Project的时候一直点"next"的话会有提示"Generate web.xml deployment descriptor",勾选该选项会默认生成一个web.xml文件).我们需要配置两对映射关系,一对是servlet名和他对应的s

图片操作,生成一个图片

知识点: 1.先创建一个Image,再创建一个Graphic 问题: 生成一个图片 解决方案 1 <%@ WebHandler Language="C#" Class="writeAPic" %> 2 3 using System; 4 using System.Web; 5 using System.Drawing; 6 7 public class writeAPic : IHttpHandler { 8 9 public void ProcessR

python基础一 ------利用生成器生成一个可迭代对象

#利用生成器生成一个可迭代对象#需求:生成可迭代对象,输出指定范围内的素数,利用生成器产生一个可迭代对象#生成器:本身是可迭代的,只是 yield 好比return返回,yield返回后函数冻结状态,当再次调用时从冻结状态开始 1 class PrintNumbers(object): 2 """docstring for PrintNumbers""" 3 def __init__(self, start,end): 4 self.start

生成一个包含所有汉字的字符串 &quot;一&quot;字开始&quot;\4e00 到9fa5

/** *    生成一个包含所有汉字的字符串 "一"字开始"\4e00 到9fa5 *    思路: *    1.既然是包含所有,肯定是从一个字符,到另一个字符之间的所有字符 *    2.因为String对象每创建一个不一样的,都会开辟空间,避免浪费内存,用STringBuilder的拼接更好 *  3.因为是输出所有拼接后的问题,所以用循环 *  4.为了避免太多一行显示不下,50个一换行显示,所以需要一个计数器 * *  步骤 *  1.循环变量初始化,这里循环变量

转:在0~N(不包括N)范围内随机生成一个长度为M(M &lt;= N)且内容不重复的数组

1. 最朴素暴力的做法. void cal1() { int i = 0, j = 0, num = 0; int result[M]; result[0] = rand() % N; //第一个肯定不重复, 直接加进去 for (i = 1; i < M; i++) //获得剩下的(M-1)个随机数 { num = rand() % N; //生成0 ~ N之间的随机数字 for (j = 0; j < i; j++) { if (num == result[j]) //如果和result数