Определить произведение элементов одномерного массива кратных заданному числу - C#
Формулировка задачи:
Всем доброго времени суток! Задание:
Дан массив из N элементов (натуральные числа). Определить произведение элементов, кратных заданному числу Р. Всё это следует проделать с помощью функции
. Ниже представлен мой нерабочий код с функцией. А ещё ниже представлен мой рабочий код, но это уже без функции. (все коды в спойлере).namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{ int m = 1;
int N;
N = Convert.ToInt32(Console.ReadLine());
int[] myArr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine("myArr: ");
for (int i = 0; i < 18; i++)
{
Console.Write(myArr[i] + " ");
}
itog = r2(m,N, myArr);
Console.WriteLine(itog);
Console.ReadKey();
}
public static int r2 (int m, int N, int MyArr )
{
bool isFlag = false;
Console.WriteLine("\n Enter N: ");
foreach (int i in myArr)
if (i % N == 0)
{
m *= i;
isFlag = true;
}
if (isFlag)
{
Console.WriteLine("\n Multiplying: " + m);
}
else
{
Console.WriteLine("Элементов, кратных числу {0} в массиве не найдено", N);
}
return (itog);
}
}
} int m = 1;
bool isFlag = false;
int N;
int[] myArr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; //задаем одномерный массив
Console.WriteLine("myArr: ");
for (int i = 0; i < 18; i++)
{
Console.Write(myArr[i] + " ");
}
Console.WriteLine("\n Enter N: ");
N = Convert.ToInt32(Console.ReadLine()); //Преобразует строку, считанную в консоли к типу int (целое число).
foreach (int i in myArr)
if (i % N == 0) // если число в массиве кратно заданному N, то цикл начинает выполняться
{
m *= i; // находит произведение элементов
isFlag = true;
}
if (isFlag)
{
Console.WriteLine("\n Multiplying: " + m);
}
else
{
Console.WriteLine("Элементов, кратных числу {0} в массиве не найдено",N);
}
Console.ReadKey();Решение задачи: «Определить произведение элементов одномерного массива кратных заданному числу»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace cb
{
class Program
{
static void Main(string[] args)
{
int p=2;
int N,i;
N = Convert.ToInt32(Console.ReadLine());
int[] myArr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine("myArr: ");
for (i = 0; i < N; i++)
{
Console.Write(myArr[i] + " ");
}
int a=r2(p, N, myArr);
Console.WriteLine();
if (a != 1)
{ Console.WriteLine("Itog={0}", a); }
else Console.WriteLine("Не найдено") ;
Console.ReadKey();
}
public static int r2( int p, int N, int[] MyArr)
{
int i;
int m = 1;
for (i = 0; i < N; i++)
{
if (MyArr[i] % p == 0)
{
m *= MyArr[i];
}
}
return (m);
}
}
}