Как правильно передать массив структур в функцию в структуре - C#

Узнай цену своей работы

Формулировка задачи:

Функция Search должна принимать массив, у меня это массив структур, как это правильно сделать? В моем случае я получаю ошибку. Аргумент 1: не удается преобразовать из "Project11.Bus" в "Project11.Bus[]". Project11
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. namespace Project11
  8. {
  9. struct Bus
  10. {
  11. public int N;
  12. public string Pn;
  13. public double Vo;
  14. public double Vp;
  15. public Bus(int n, string pn, double vo, double vp)
  16. {
  17. this.N = n;
  18. this.Pn = pn;
  19. this.Vo = vo;
  20. this.Vp = vp;
  21. }
  22. public void Show()
  23. {
  24. Console.WriteLine("№ рейса " + this.N);
  25. Console.WriteLine("Пункт назначения: " + this.Pn);
  26. Console.WriteLine("Время отправления: " + this.Vo);
  27. Console.WriteLine("Время прибытия : " + this.Vp);
  28. }
  29. public void Write()
  30. {
  31. string fileName = "bus.txt";
  32. FileStream aFile = new FileStream(fileName, FileMode.OpenOrCreate);
  33. StreamWriter sw = new StreamWriter(aFile);
  34. aFile.Seek(0, SeekOrigin.End);
  35. sw.WriteLine("№ рейса " + this.N);
  36. sw.WriteLine("Пункт назначения: " + this.Pn);
  37. sw.WriteLine("Время отправления: " + this.Vo);
  38. sw.WriteLine("Время прибытия : " + this.Vp);
  39. sw.WriteLine();
  40. sw.Close();
  41. Console.WriteLine();
  42. Console.WriteLine("Данные записаны в файл");
  43. }
  44. public void Search(Bus[] arr, double _xtime, int k)
  45. {
  46. double xtime = _xtime;
  47. int z = 0;
  48. int g = k - 1;
  49. int m;
  50. while (z < g)
  51. {
  52. m = (z + g) / 2;
  53. if (xtime > arr[m].Vo)
  54. z = m + 1;
  55. else
  56. g = m;
  57. }
  58. if (arr[z].Vo == xtime)
  59. {
  60. arr[z].Show();
  61. Console.WriteLine("--------------------------");
  62. }
  63. else
  64. {
  65. Console.WriteLine("такого рейса не существует");
  66. Console.WriteLine("--------------------------");
  67. }
  68. }
  69. }
  70.  
  71. class PR11
  72. {
  73. public static void Main()
  74. {
  75. int k = 5;
  76. Bus[] bus = new Bus[k];
  77. bus[0] = new Bus(122, "Paris", 14.00, 14.50);
  78. bus[1] = new Bus(12, "Vena", 16.00, 17.35);
  79. bus[2] = new Bus(121, "Roma", 7.20, 8.15);
  80. bus[3] = new Bus(356, "London", 13.00, 17.30);
  81. bus[4] = new Bus(356, "Praha", 10.00, 21.30);
  82. Console.Read();
  83. Console.Read();
  84. Console.WriteLine("Сортировка по времени отправки......");
  85. Bus tmp = new Bus();
  86. for (int i = 0; i < bus.Length; i++)
  87. {
  88. for (int j = i + 1; j < bus.Length; j++)
  89. {
  90. if (bus[i].Vo > bus[j].Vo) //По возростанию
  91. {
  92. tmp = bus[i];
  93. bus[i] = bus[j];
  94. bus[j] = tmp;
  95. }
  96. }
  97. }
  98. Console.WriteLine();
  99. Console.WriteLine("Поиск...");
  100. Bus.Search(bus[k],14.00,k);
  101. Console.Read();
  102. Console.Read();
  103. }
  104.  
  105. }
  106. }

Решение задачи: «Как правильно передать массив структур в функцию в структуре»

textual
Листинг программы
  1. public static void Search(Bus[] arr, double _xtime, int k)
  2. {
  3. // ...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут