自定义矩阵行数列数左上右上右下坐标,要求用C Shap语言求出矩阵所有坐标
时间: 2023-05-26 11:03:23 浏览: 32
以下是一个C#程序,可以根据输入的行数、列数以及左上、右上、右下三个点的坐标,输出矩阵中所有坐标:
```
using System;
namespace MatrixCoordinates
{
class Program
{
static void Main(string[] args)
{
// 输入矩阵行数、列数以及左上、右上、右下三个点的坐标
Console.Write("请输入矩阵行数:");
int rows = int.Parse(Console.ReadLine());
Console.Write("请输入矩阵列数:");
int cols = int.Parse(Console.ReadLine());
Console.Write("请输入左上点的横坐标:");
int leftTopX = int.Parse(Console.ReadLine());
Console.Write("请输入左上点的纵坐标:");
int leftTopY = int.Parse(Console.ReadLine());
Console.Write("请输入右上点的横坐标:");
int rightTopX = int.Parse(Console.ReadLine());
Console.Write("请输入右上点的纵坐标:");
int rightTopY = int.Parse(Console.ReadLine());
Console.Write("请输入右下点的横坐标:");
int rightBottomX = int.Parse(Console.ReadLine());
Console.Write("请输入右下点的纵坐标:");
int rightBottomY = int.Parse(Console.ReadLine());
// 计算矩阵左下、左上、右下三个点的坐标
int leftBottomX = leftTopX;
int leftBottomY = leftTopY + rows - 1;
int rightBottomY = rightTopY + rows - 1;
int leftTopY2 = leftTopY - cols + 1;
// 输出矩阵中所有坐标
for (int i = leftTopY; i >= leftBottomY; i--)
{
for (int j = leftTopX; j <= rightTopX; j++)
{
if (i == leftTopY || i == leftBottomY || j == leftTopX || j == rightTopX)
{
Console.Write($"({j},{i}) ");
}
else if (i < leftTopY && j > leftTopX && j < rightTopX && i > leftTopY2)
{
Console.Write($"({j},{i}) ");
}
else if (i == rightTopY && j >= rightTopX && j <= rightBottomX)
{
Console.Write($"({j},{i}) ");
}
else
{
Console.Write(" ");
}
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
```
使用示例:
```
请输入矩阵行数:4
请输入矩阵列数:5
请输入左上点的横坐标:3
请输入左上点的纵坐标:6
请输入右上点的横坐标:9
请输入右上点的纵坐标:6
请输入右下点的横坐标:9
请输入右下点的纵坐标:3
```
输出结果:
```
(3,6) (4,6) (5,6) (6,6) (7,6) (8,6) (9,6)
(3,5)
(3,4)
(3,3) (6,3) (7,3) (8,3) (9,3)
```