Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C# составить программу

Squid Ward Знаток (378), закрыт 2 месяца назад
Составить блок-схему и программу для следующей задачи : Дан двумерный массив. Найти среднее арифметическое элементов, кратных 3. c#
Лучший ответ
Николай Веселуха Высший разум (375136) 3 месяца назад
 using System; 
using System.Collections.Generic;
class Program {
static void Main() {
var matrix = new int[5, 8];
var rand = new Random();
const int n = 3;
var sum = 0.0;
var count = 0;
var list = new List<int>();
for (int i = 0; i < matrix.GetLength(0); ++i) {
for (int j = 0; j < matrix.GetLength(1); ++j) {
matrix[i, j] = rand.Next(1, 100);
var number = string.Format("{0,4}", matrix[i, j]);
if (0 == matrix[i, j] % n) {
list.Add(matrix[i, j]);
sum += matrix[i, j];
++count;
}
Console.Write(number);
}
Console.WriteLine();
}
Console.Write("Elements:");
foreach (var value in list) {
var number = string.Format("{0,3}", value);
Console.Write(number);
}
Console.WriteLine();
Console.WriteLine($"Sum: {sum}");
Console.WriteLine($"Count: {count}");
Console.WriteLine($"Average: {sum / count}");
Console.ReadKey();
}
}
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (457747) 3 месяца назад
Есть примерно 1001 способ это сделать, если бы ты задавал более конкретные вопросы, что там у тебя не получилось, было бы как-то понятнее. У меня получилось что-то вот эдакое, понятия не имею, сможешь ли ты такое прожевать:

 public delegate bool AnyMatch<T>(T x); 

static double Find2DAverage(int[,] a, AnyMatch<int> Match)
{
List<int> MatchingElements = new List<int>();
for(int i = 0; i < a.GetLength(0); i++)
for(int j = 0; j < a.GetLength(1); j++)
if (Match(a[i, j]))
MatchingElements.Add(a[i,j]);
return MatchingElements.Average();
}

static void Main(string[] args)
{
int[,] a = {
{ 1, 3 },
{ 6, 8 }
};
Console.WriteLine(Find2DAverage(a, x => x % 3 == 0));
}
Похожие вопросы