76.求两个距阵相乘的结果:距阵乘法法则如下仅当一个m×n矩阵A的列数与另一个q×p矩阵B的行数相同时(即n = q),才可以执行矩阵乘法A*B。A*B所得到的m×p矩阵C满足以下关系:
c_ij = Σ (a_ik * b_kj)
77.写程序实现将一个数组中指定的元素删除,如对于数组{1,3,5,3,8,9},删除其中所有的元素值为3的元素后的数组输出。
78.从键盘输入有n个元素的一个数组,要求打印出这个数组中所有数的平均值pjz以及数组中所有比这个平均值大的数。
79.在控制台上打印输出如下图形:
1
1 1
1 1 2
1 1 2 3
1 1 2 3 5
80.计算1/3+3/5+5/7+…….+97/99的和
76、
在这个代码中,我们定义了两个示例矩阵 matrixA
和 matrixB
,然后调用 MultiplyMatrices
函数来计算它们的乘积。结果矩阵 matrixC
的维度是2x2,因为 matrixA
是2x3的矩阵,而 matrixB
是3x2的矩阵。
注意,这个示例代码假设矩阵A和B的维度是兼容的,能够进行乘法操作。如果矩阵的维度不匹配(例如,矩阵A的列数不等于矩阵B的行数),代码将抛出一个异常。在实际应用中,应当先检查矩阵维度的兼容性,然后再进行乘法运算
private static void Main(string[] args)
{
// 示例矩阵A和B
int[,] matrixA = {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
int[,] matrixB = {
{ 7, 8 },
{ 9, 10 },
{ 11, 12 }
};
// 计算矩阵乘法的结果
int[,] matrixC = MultiplyMatrices(matrixA, matrixB);
// 输出结果矩阵
Console.WriteLine("矩阵C的维度: " + matrixC.GetLength(0) + " x " + matrixC.GetLength(1));
for (int i = 0; i < matrixC.GetLength(0); i++)
{
for (int j = 0; j < matrixC.GetLength(1); j++)
{
Console.Write(matrixC[i, j] + "\t");
}
Console.WriteLine();
}
}
// 矩阵乘法函数
static int[,] MultiplyMatrices(int[,] matrixA, int[,] matrixB)
{
// 获取矩阵A和B的维度
int aRows = matrixA.GetLength(0);
int aColumns = matrixA.GetLength(1);
int bColumns = matrixB.GetLength(1);
// 初始化结果矩阵C
int[,] matrixC = new int[aRows, bColumns];
// 执行矩阵乘法
for (int i = 0; i < aRows; i++)
{
for (int j = 0; j < bColumns; j++)
{
for (int k = 0; k < aColumns; k++)
{
matrixC[i, j] += matrixA[i, k] * matrixB[k, j];
}
}
}
return matrixC;
}
77、
RemoveAllOccurrences
函数计算原始数组中不等于 elementToRemove
的元素数量,然后创建一个新的数组,长度等于这个数量。接着,它遍历原始数组,将不等于 elementToRemove
的元素复制到新数组中。最后,函数返回新数组。
Main
方法定义了一个示例数组 originalArray
和一个要删除的元素值 elementToRemove
,调用 RemoveAllOccurrences
函数来删除所有的3,然后输出新数组
private static void Main(string[] args)
{
int[] originalArray = { 1, 3, 5, 3, 8, 9 }; // 原始数组
int elementToRemove = 3; // 指定要删除的元素值
int[] newArray = RemoveAllOccurrences(originalArray, elementToRemove);
// 输出新数组
Console.WriteLine("删除所有值为3的元素后的数组:");
foreach (int value in newArray)
{
Console.Write(value + " ");
}
}
// 删除数组中所有指定元素的函数
static int[] RemoveAllOccurrences(int[] array, int elementToRemove)
{
// 计算不包含要删除元素的数量
int count = 0;
foreach (int element in array)
{
if (element != elementToRemove)
{
count++;
}
}
// 创建新数组,长度等于不包含要删除元素的数量
int[] newArray = new int[count];
// 复制不包含要删除元素的元素到新数组中
int index = 0;
foreach (int element in array)
{
if (element != elementToRemove)
{
newArray[index++] = element;
}
}
return newArray;
}
78、程序首先提示用户输入数组的元素个数,然后提示用户输入每个元素的值。接着,程序计算出数组所有元素的平均值 pjz
,并打印出所有比这个平均值大的数
private static void Main(string[] args)
{
Console.WriteLine("请输入数组的元素个数:");
int n = Convert.ToInt32(Console.ReadLine()); // 从键盘读取元素个数
// 创建一个数组来存储输入的元素
int[] array = new int[n];
// 读取数组元素
Console.WriteLine("请输入 " + n + " 个整数:");
for (int i = 0; i < n; i++)
{
array[i] = Convert.ToInt32(Console.ReadLine()); // 从键盘读取每个元素
}
// 计算平均值
double sum = 0;
foreach (int element in array)
{
sum += element;
}
double pjz = sum / n; // 计算平均值
// 打印平均值
Console.WriteLine("数组中所有数的平均值pjz: " + pjz);
// 打印所有比平均值大的数
Console.WriteLine("所有比平均值pjz大的数:");
foreach (int element in array)
{
if (element > pjz)
{
Console.WriteLine(element);
}
}
}
79、
private static void Main(string[] args)
{
int n = 5; // 可以根据需要修改这个数字来获取更多的行
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
Console.Write(" ");
}
for (int k = 1; k <= i+1; k++)
{
Console.Write("{0} ", Fibonacci(k));
}
Console.WriteLine();
}
}
static int Fibonacci(int n)
{
if (n <= 1)
return n;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
80、
private static void Main(string[] args)
{
double sum = 0; // 用于累加序列的和
for (int i = 1; i < 99; i += 2)
{
sum += (double)i / (i + 2); // 计算每一项并累加到总和中
}
Console.WriteLine($"1/3 + 3/5 + 5/7 + ... + 97/99 的和为: {sum}");
}