Софтуерно Инженерство
Loading...
Rumyanarusimova avatar Rumyanarusimova 20 Точки

Пробвай да кастнеш към double целия израз в скоби.

Ето моето решение 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _01.Array_Statistics
{
    class Program
    {
        static void Main(string[] args)
        {
            var arr = Console.ReadLine().Split().Select(int.Parse).ToArray();
            var max = int.MinValue;
            var min = int.MaxValue;
            var sum = 0;
            double average = 1.0;
            for (int i = 0; i < arr.Length; i++)
            {
                var currentNum = arr[i];
                if (currentNum > max)
                {
                    max = currentNum;
                }
                if (currentNum < min)
                {
                    min = currentNum;
                }
                sum += currentNum;
                average = (double) sum / arr.Length;
            }
            Console.WriteLine($"Min = {min}");
            Console.WriteLine($"Max = {max}");
            Console.WriteLine($"Sum = {sum}");
            Console.WriteLine($"Average = {average}");
        }
       
    }
}
0
12/06/2017 15:52:26
Rozi_Petkova avatar Rozi_Petkova 1 Точки

Оправих го, но честно казано не знам как. Мисля, че проблемът беше във дорматирането ....  Така работи: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ArraysAndMethodsMoreExercises
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = Console.ReadLine().
                        Split(' ').
                        Select(int.Parse).
                        ToArray();

            int maxNumer = int.MinValue;
            int minNumber = int.MaxValue;
            long sum = 0;
            
            int counter = 0;                 
            while (counter < arr.Length)
            {
                sum = sum + arr[counter];               
                maxNumer = maxNumer < arr[counter] ? arr[counter] : maxNumer;
                minNumber = minNumber > arr[counter] ? arr[counter] : minNumber;
                counter++;
            }

            double averageValue = 1.0;
            averageValue = (double)sum / arr.Length;
            Console.WriteLine($"Min = {minNumber}"
                            + $"\nMax = {maxNumer}"
                            + $"\nSum = {sum}"
                            + $"\nAverage = {averageValue}");
        }
    }
}
 

1
athristov avatar athristov 29 Точки

Решение което едва ли би било за пример, и едва ли е най-правилното , но пък работи. 

https://pastebin.com/MsAkZj3H

 

0
TeodorStefanovPld avatar TeodorStefanovPld 1280 Точки

https://pastebin.com/VSKLH4x6

защо сте се мъчили толкова,просто ползвайте методите на самите array 

0
athristov avatar athristov 29 Точки

Много е добре сега и за в вбъдеще да научим как работят самите методи , и да се научим поне малко на алгоритмично мислиене и тогава чак да си ползваме вградените методи. Защото лесното сега е труднто по-късно, и обратнато. 

0
TeodorStefanovPld avatar TeodorStefanovPld 1280 Точки

ама чакай сега? то всеки може да го разпише,но като имаш направена логиката вътре в самия клас? все едно да се мъчиш да изчисляваш времето и тн а да не ползваш timespan или datetime

Още на basic курса, нашите лектори ни казаха нещо много правилно.Че логика можеш да напишеш всякаква но ако се обърка ти ще си виновен но ако използваш c# заложените класове методи и тн. Тогава MS ще са виновни и са прави. Не мисля че тук има някои който да не може да изчисли средна сума,най-голямо най-малко и тн.

Просто по начина които го правите шанса да сбъркате с число или превръщане е голям.А и цялата идея на тея лекции и това че учим array list и тн. Е да свикнем да работим с самите масиви и техните методи.То иначе това което го правите на ръка го правихме в basics...

1