A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 潘龙旺 中级黑马   /  2013-6-28 20:36  /  1309 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

设计一程序,求一个6X6矩阵的两对角线元素之和

4 个回复

倒序浏览
  1. static void Main(string[] args)
  2.         {
  3.             int sum1 = 0, sum2 = 0, num = 1;//sum1为第一条对角线的和,sum2为第二条对角线的和
  4.             int[,] a = new int[6, 6];//定义a为6X6矩阵
  5.             for (int i = 0; i < 6; i++)//给6X6矩阵赋值
  6.             {
  7.                 for (int j = 0; j < 6; j++)
  8.                 {
  9.                     a[i, j] = num;
  10.                     num++;
  11.                 }
  12.             }
  13.             for (int i = 0; i < 6; i++)//计算第一条对角线的和
  14.             {
  15.                 sum1 += a[i, i];
  16.             }
  17.             for (int i = 0; i < 6; i++)//计算第二条对角线的和
  18.             {
  19.                 sum2 += a[i, 5-i];
  20.             }
  21.         }
复制代码
回复 使用道具 举报
int[,] a =new int [6,6]   //这样是定义一个二维的数组的方式哈?学习了
回复 使用道具 举报
这是C++的代码:
#include <stdio.h>
#include <malloc.h>
int main( void)
{
int n = 0;
int i = 0;
int j = 0;
int **a;
int sum = 0;
printf("请输入矩阵的维数:\n");
scanf("%d",&n);

a = (int**)malloc(n*sizeof(int*));
for (int i = 0; i < n; ++i)
{
  *(a+i) = (int *)malloc(sizeof(int)*n);
}
printf("请依次输入矩阵中的数值:\n");
for ( i = 0; i < n; i ++)
{
  for ( j = 0; j < n; j++)
  {
   scanf("%d",&a[i][j]);
  }
}
for ( i = 0; i < n; i++)
{
  for ( j = 0; j < n; j++)
  {
   if ( (i == j) || ((i+j == n-1) && (i != j)))
   {
    sum += a[i][j];
   }
  }
}
printf("矩阵两个对角线元素的和为:%d\n",sum);
}
回复 使用道具 举报
int sum = 0;
            Random random = new Random();//实例化一个随机对象
            int[,] sixArray = new int[6, 6];//定义a为6X6矩阵
            for (int i = 0; i < 6; i++)//给6X6矩阵赋随机值
            {
                for (int j = 0; j < 6; j++)
                {
                    sixArray[i, j] = random.Next(1, 100);
                }
            }
            Console.WriteLine("随机产生的6X6矩阵为:");
            for (int i = 0; i < 6; i++)//打印6X6矩阵的值
            {
                for (int j = 0; j < 6; j++)
                {
                    Console.Write(sixArray[i,j]+"\t");
                }
                Console.WriteLine();
            }
            for (int i = 0; i < 6; i++)//求两条对角线的和
            {
                for (int j = 0; j < 6; j++)
                {
                    if (i == j || i + j == 5)
                    {
                        sum += sixArray[i, j];
                    }
                }
            }
            Console.WriteLine();
            Console.WriteLine("两对角线和为:{0}",sum);
           Console.ReadKey();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马