題目:
陣列相加、相乘(需使用double)。
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[,] a = { { 1.0, 2.3, 5.1 }, { 4.1, 0.2, 8.7 } }; // 宣告陣列A
double[,] b = { { 0.1, 1.7, 8.5 }, { 6.1, 3.4, 7.2 } }; // 宣告陣列B
double[,] d = { { 0.1, 6.1 }, { 1.7, 3.4 }, { 8.5, 7.2 } }; // 宣告陣列C
matrixAdd(a, b); // 執行陣列相加函式
Console.WriteLine(" "); // 空一行
matrixMul(a, d); // 執行陣列相乘函式
Console.ReadLine(); // 輸入,用來暫停程式
}
static void matrixAdd(double[,] a, double[,] b) // 相加函式
{
double[,] c = new double[a.GetLength(0), a.GetLength(1)]; // 宣告空陣列C(X向量為3,Y向量為2)
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
c[i, j] = a[i, j] + b[i, j]; // 陣列C=陣列A+陣列B
Console.WriteLine("c[" + i + "," + j + "]=" + c[i, j] + " "); // 印出陣列的值
}
}
}
static void matrixMul(double[,] a, double[,] b) // 相乘函式
{
double[,] c = new double[a.GetLength(0), b.GetLength(1)]; // 宣告空陣列C(X向量為2,Y向量為2)
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
c[i, i - i] += a[i, j] * b[j, i - i]; // 陣列C=陣列A與陣列B的內積
c[i, i - i + 1] += a[i, j] * b[j, i - i + 1];
}
Console.WriteLine("c[" + i + "," + (i-i) + "]=" + c[i, i-i] + " "); // 印出陣列C[i,i-i]
Console.WriteLine("c[" + i + "," + (i - i + 1) + "]=" + c[i, i - i + 1] + " "); // 印出陣列C[i,i-i+1]
}
}
}
}
作者已經移除這則留言。
回覆刪除