图中,代码是c++(左起),但需要用c#重写
我重写了我在代码中写的内容:
public virtual kyzov CreateKuzov()
{
return "0";
}
public virtual dvizh CreateDvygun()
{
return 0;
}
一开始,我有一个飞机结构。我需要(在结构之外)声明一个数组并编写一个函数,该函数从键盘读取一个结构数组(n 个)并返回一个 Airplane 类型的结构数组,并在 void menu() 中调用此函数。编译器对我发誓..
class Program
{
Airplane[] arr;
static void menu()
{
int q;
WriteLine("Что вы хотите сделать?? ");
do {
q = int.Parse(ReadLine());
switch (q)
{
case 1:
{
//arr = vvod(arr);
break;
}
case 2:
{
arr = ReadAirplaneArray(arr);//тут компилятор пишет ошибку (пишет "Требуется ссылка на объект")
break;
}
}
} while (q != 0);
}
static int ReadAirplaneArray(Airplane [] arr)
{
int n;
WriteLine("Сколько рейсов вы хотите ввести? ");
n = int.Parse(ReadLine());
arr = new Airplane[n];
return arr;// и ещё вот тут вот тоже подчёркивает красным
}
}
二维数组 (arr) 中位于最小数 (int min = int.MaxValue;) 之前的元素必须重写为单独的一维数组 (mas) 并按递增数排序。我的 mas[i] 显示了一堆零。
using System;
using static System.Console;
using static System.Array;
namespace ConsoleApp4
{
class Program
{
static void z3(int[,] arr)
{
int min = int.MaxValue;
int m_i = 0, m_j = 0;
int [] mas = new int [100];
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
if (arr[i, j] < min)
{
min = arr[i, j];
m_i = i;
m_j = j;
}
}
}
WriteLine("min = " + min + "\n m_i = " + m_i + "\n m_j = " + m_j);
int k = 0;
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
if (i == m_i && j == m_j)
{
break;
}
else
{
mas[k] = arr[i, j];
k++;
}
}
}
WriteLine();
WriteLine();
WriteLine();
for (int i1 = 0; i1 < mas.Length; i1++)
{
Write(mas[i1] + "\t");
}
WriteLine();
Sort(mas);
for (int i1 = 0; i1 < mas.Length; i1++)
{
Write(mas[i1] + "\t");
}
WriteLine();
}
static void Main(string[] args)
{
Write("Введите ширину массива: ");
int M = int.Parse(ReadLine());
Write("Введите длинну массива: ");
int N = int.Parse(ReadLine());
Write("Введите диапазон массива: ");
Write("\n\tВведите минимальное число: ");
int A = int.Parse(ReadLine());
Write("\n\tВведите максимальное число: ");
int B = int.Parse(ReadLine());
int[,] arr = new int[M, N];
Random a = new Random();
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
arr[i,j] = a.Next(A, B);
}
}
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Write("\t" + arr[i,j]);
}
WriteLine();
}
z3(arr);
}
}
}
using System;
using static System.Console;
using static System.Array;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Write("Введите ширину массива: ");
int N = int.Parse(ReadLine());
Write("Введите длинну массива: ");
int M = int.Parse(ReadLine());
Write("Введите диапазон массива: ");
Write("\n\tВведите минимальное число: ");
int A = int.Parse(ReadLine());
Write("\n\tВведите максимальное число: ");
int B = int.Parse(ReadLine());
int[][] arr = new int[N][];
arr[0] = new int[N];
arr[1] = new int[M];
arr.GetLength(0);
arr.GetLength(1);
Random a = new Random();
for (int i = 0; i < arr.GetLength(0); i++) {
for(int j = 0; j < arr.GetLength(1); j++)
{
arr[i][j] = a.Next(A,B) ;
}
}
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Write(" " + arr);
}
}
}
}
}