Професионална програма
Loading...
krisiety avatar krisiety 11 Точки

Rounding Numbers - Аrrays

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

 

namespace Rounding
{
    class Program
    {
        static void Main(string[] args)
        {
            double[] nums; 
            int[] arr = new int[nums.Length];

            for (int i = 0; i < nums.Length; i++)
            {
                arr[i] =(int)Math.Round(nums[i], MidpointRounding.AwayFromZero);
            }
            for (int i = 0; i < nums.Length; i++)
            {
                Console.WriteLine($"{nums[i]} => {arr[i]}");
            }
        }
    }
}
 

Тагове:
0
Programming Fundamentals
KeepCoding avatar KeepCoding 554 Точки

Judge ти дава един входен стринг. Този стринг е от типа
"2.5 -3.14 4.1 9.3"
Това са числа от тип "double". Следващата стъпка е този стринг да се превърне в масив от числа с плаваща запетая. Тъй като всяко число е разделено с празно място, можеш на един ред да присвоиш тези числа на масива.
 

string doubleVariables = Console.ReadLine();

double[] arrayOfDoubles = doubleVariables.Split(' ').Select(double.Parse).ToArray();

Сега трябва да се обходи масива и всяко число да бъде закръглено по специален начин.

for (int i = 0; i < arrayOfDoubles.Length; i++)
  {
    int roundedNumber = (int)Math.Round(arrayOfDoubles[i], MidpointRounding.AwayFromZero);
    Console.WriteLine($"{arrayOfDoubles[i]} => {roundedNumber}");
  }

Това беше задачата.

1
krisiety avatar krisiety 11 Точки

Много благодаря!

0
Denislava91 avatar Denislava91 5 Точки

Здравейте:)

Дали може да помоля някой да разпише решението ред по ред, а не така няколко операции на един ред: 

double[] arrayOfDoubles = doubleVariables.Split(' ').Select(double.Parse).ToArray();

Ето го и моето, което за жалост не работи:)

using System;
					
public class Program
{
	public static void Main()
	{

		
		string input=Console.ReadLine();
		
		string[] items=input.Split();
		
		double[] numbers=new double[items.Length];


		for(int i=0;i<items.Length;i++)
		
		{
		
			numbers[i]=double.Parse(items[i]);
			
			Console.WriteLine(items[i] + " => "+ Math.Round(numbers[i]));
		
		}
		
		
        }

      }

 

Опитвам се да разбера логиката зад масиви и ще ми е по-лесно, по-раздробено.

Дори и със съкратения синтаксис ми дава 75%:

using System;

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

public class Program
{
	public static void Main()
	{

	
	double[] array=Console.ReadLine().Split().Select(double.Parse).ToArray();
		
	int[] roundNums=new int[array.Length];
		
		for(int i=0;i<array.Length;i++)
		
		{
		roundNums[i]=(int)Math.Round(array[i],MidpointRounding.AwayFromZero);
		
		Console.WriteLine(array[i]+" => "+roundNums[i]);
		}
		
        }

      }

Предварително благодаря.

Дени

0
22/01/2020 09:19:10
Judeva avatar Judeva 0 Точки

Здрасти, подминавай тези 75%, това е бъг в Judge заради updatе. Нещо свързано с .Net Core, и връща output -0 или някаква такава боза. 

0
kodzhamanov avatar kodzhamanov 0 Точки

Ако това е вярно ще може ли някой от админ тийм да ъпдейтне условията тогава за да не си губим времето в търсене на несъществуващ бъг?

0