Не могу написать программу с массивом с подпрограммой ключевым словом return
Упорядочить по возрастанию три числа а, b, c, где а – минимальный элемент массива х, b - минимальный элемент массива у, с - минимальный элемент массива z.
Разработать алгоритм и программу решения задачи с использованием подпрограммы.
1) подпрограмма, которая возвращает значение (оператор return)
хелп
Код:
private void button1_Click(object sender, EventArgs e)
{
int[] x = new int[5];
int[] y = new int[6];
int[] z = new int[4];
int[] res = new int[3];
/* здесь заполняешь свои массивы */
x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
int a = min(x);
int b = min(y);
int c = min(z);
res[0] = a;
res[1] = b;
res[2] = c;
res[0] = min(res);
if (a >= c && a >= b)
res[2] = a;
else if (b >= c && b >= a)
res[2] = b;
else
res[2] = c;
if (res[0] != a && res[2] != a)
res[1] = a;
else if (res[0] != b && res[2] != b)
res[1] = b;
else
res[1] = c;
MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
}
public int min(int[] arr)
{
int res = arr[0];
for (int i = 1; i < arr.Length; i++)
if (arr[i] < res)
res = arr[i];
return res;
}
{
int[] x = new int[5];
int[] y = new int[6];
int[] z = new int[4];
int[] res = new int[3];
/* здесь заполняешь свои массивы */
x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
int a = min(x);
int b = min(y);
int c = min(z);
res[0] = a;
res[1] = b;
res[2] = c;
res[0] = min(res);
if (a >= c && a >= b)
res[2] = a;
else if (b >= c && b >= a)
res[2] = b;
else
res[2] = c;
if (res[0] != a && res[2] != a)
res[1] = a;
else if (res[0] != b && res[2] != b)
res[1] = b;
else
res[1] = c;
MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
}
public int min(int[] arr)
{
int res = arr[0];
for (int i = 1; i < arr.Length; i++)
if (arr[i] < res)
res = arr[i];
return res;
}
Можете оставить комментария в коде , что бы я понял конкретнее если не трудно:!:?
Цитата: CP_agent
Можете оставить комментария в коде , что бы я понял конкретнее если не трудно:!:?
Могу. Мне никто не отвечает на мои вопросы, сначала огорчился, а потом понял, что сам другим не помогаю :) Исправляю ситуацию.
Код:
private void button1_Click(object sender, EventArgs e) // событие нажатия кнопки button1
{
// создаю массивы
int[] x = new int[5];
int[] y = new int[6];
int[] z = new int[4];
int[] res = new int[3];
// заполняю массивы
x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
// получаю минимальный элемент каждого массива
int a = min(x);
int b = min(y);
int c = min(z);
// заполняю массив, в котором будут храниться результаты, минимальными значениями
res[0] = a;
res[1] = b;
res[2] = c;
// т.к. отсортировать нужно по возрастанию, первый элемент - минимальный из a, b, c
res[0] = min(res);
// нахожу максимальный элемент и записываю его в конец res
if (a >= c && a >= b)
res[2] = a;
else if (b >= c && b >= a)
res[2] = b;
else
res[2] = c;
// теперь ищу элемент, который не является ни макс. ни мин (т.е. средний)
// и записываю в середину
if (res[0] != a && res[2] != a) // например, если а не равно мин. и макс. элементу
res[1] = a;
else if (res[0] != b && res[2] != b)
res[1] = b;
else
res[1] = c;
// Вывод результата
MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
}
// та "подпрограмма", о которой шла речь в задании
public int min(int[] arr)
{
// записываю первый элемент массива в res
int res = arr[0];
// иду в цикле по каждому элементу массива, начиная со второго (т.к. первый у нас уже в res)
for (int i = 1; i < arr.Length; i++)
// если нашёл элемент меньше чем res - записываю его как минимальный
// ну а если не нашёл таких - значит первый элемент массива и есть минимальный
if (arr[i] < res)
res = arr[i];
return res;
}
{
// создаю массивы
int[] x = new int[5];
int[] y = new int[6];
int[] z = new int[4];
int[] res = new int[3];
// заполняю массивы
x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
// получаю минимальный элемент каждого массива
int a = min(x);
int b = min(y);
int c = min(z);
// заполняю массив, в котором будут храниться результаты, минимальными значениями
res[0] = a;
res[1] = b;
res[2] = c;
// т.к. отсортировать нужно по возрастанию, первый элемент - минимальный из a, b, c
res[0] = min(res);
// нахожу максимальный элемент и записываю его в конец res
if (a >= c && a >= b)
res[2] = a;
else if (b >= c && b >= a)
res[2] = b;
else
res[2] = c;
// теперь ищу элемент, который не является ни макс. ни мин (т.е. средний)
// и записываю в середину
if (res[0] != a && res[2] != a) // например, если а не равно мин. и макс. элементу
res[1] = a;
else if (res[0] != b && res[2] != b)
res[1] = b;
else
res[1] = c;
// Вывод результата
MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
}
// та "подпрограмма", о которой шла речь в задании
public int min(int[] arr)
{
// записываю первый элемент массива в res
int res = arr[0];
// иду в цикле по каждому элементу массива, начиная со второго (т.к. первый у нас уже в res)
for (int i = 1; i < arr.Length; i++)
// если нашёл элемент меньше чем res - записываю его как минимальный
// ну а если не нашёл таких - значит первый элемент массива и есть минимальный
if (arr[i] < res)
res = arr[i];
return res;
}
P.S. Если отвечаешь на чьё-либо сообщение, нажимай "Цитировать", тогда на почту приходит уведомление. Так бы раньше ответил:)
Цитата: fen1xxx
Цитата: CP_agent
Можете оставить комментария в коде , что бы я понял конкретнее если не трудно:!:?
Могу. Мне никто не отвечает на мои вопросы, сначала огорчился, а потом понял, что сам другим не помогаю :) Исправляю ситуацию.
Код:
private void button1_Click(object sender, EventArgs e) // событие нажатия кнопки button1
{
// создаю массивы
int[] x = new int[5];
int[] y = new int[6];
int[] z = new int[4];
int[] res = new int[3];
// заполняю массивы
x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
// получаю минимальный элемент каждого массива
int a = min(x);
int b = min(y);
int c = min(z);
// заполняю массив, в котором будут храниться результаты, минимальными значениями
res[0] = a;
res[1] = b;
res[2] = c;
// т.к. отсортировать нужно по возрастанию, первый элемент - минимальный из a, b, c
res[0] = min(res);
// нахожу максимальный элемент и записываю его в конец res
if (a >= c && a >= b)
res[2] = a;
else if (b >= c && b >= a)
res[2] = b;
else
res[2] = c;
// теперь ищу элемент, который не является ни макс. ни мин (т.е. средний)
// и записываю в середину
if (res[0] != a && res[2] != a) // например, если а не равно мин. и макс. элементу
res[1] = a;
else if (res[0] != b && res[2] != b)
res[1] = b;
else
res[1] = c;
// Вывод результата
MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
}
// та "подпрограмма", о которой шла речь в задании
public int min(int[] arr)
{
// записываю первый элемент массива в res
int res = arr[0];
// иду в цикле по каждому элементу массива, начиная со второго (т.к. первый у нас уже в res)
for (int i = 1; i < arr.Length; i++)
// если нашёл элемент меньше чем res - записываю его как минимальный
// ну а если не нашёл таких - значит первый элемент массива и есть минимальный
if (arr[i] < res)
res = arr[i];
return res;
}
{
// создаю массивы
int[] x = new int[5];
int[] y = new int[6];
int[] z = new int[4];
int[] res = new int[3];
// заполняю массивы
x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
// получаю минимальный элемент каждого массива
int a = min(x);
int b = min(y);
int c = min(z);
// заполняю массив, в котором будут храниться результаты, минимальными значениями
res[0] = a;
res[1] = b;
res[2] = c;
// т.к. отсортировать нужно по возрастанию, первый элемент - минимальный из a, b, c
res[0] = min(res);
// нахожу максимальный элемент и записываю его в конец res
if (a >= c && a >= b)
res[2] = a;
else if (b >= c && b >= a)
res[2] = b;
else
res[2] = c;
// теперь ищу элемент, который не является ни макс. ни мин (т.е. средний)
// и записываю в середину
if (res[0] != a && res[2] != a) // например, если а не равно мин. и макс. элементу
res[1] = a;
else if (res[0] != b && res[2] != b)
res[1] = b;
else
res[1] = c;
// Вывод результата
MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
}
// та "подпрограмма", о которой шла речь в задании
public int min(int[] arr)
{
// записываю первый элемент массива в res
int res = arr[0];
// иду в цикле по каждому элементу массива, начиная со второго (т.к. первый у нас уже в res)
for (int i = 1; i < arr.Length; i++)
// если нашёл элемент меньше чем res - записываю его как минимальный
// ну а если не нашёл таких - значит первый элемент массива и есть минимальный
if (arr[i] < res)
res = arr[i];
return res;
}
P.S. Если отвечаешь на чьё-либо сообщение, нажимай "Цитировать", тогда на почту приходит уведомление. Так бы раньше ответил:)
Спасибо большое за ваш труд, очень помогли мне!
А на Java я уже перевести сам смогу!