黑马程序员技术交流社区

标题: 写程序!! [打印本页]

作者: 潘龙旺    时间: 2013-6-28 20:36
标题: 写程序!!
设计一程序,求一个6X6矩阵的两对角线元素之和
作者: 崔旭东    时间: 2013-6-28 23:42
  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.         }
复制代码

作者: 庞登升    时间: 2013-6-29 13:29
int[,] a =new int [6,6]   //这样是定义一个二维的数组的方式哈?学习了
作者: ゞ灬伊夏風    时间: 2013-6-29 15:22
这是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);
}
作者: 万大述    时间: 2013-7-4 14:53
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();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2