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

[C#] Simple Conditions: Изписване на число до 100 с думи

Здравейте code нинджи от форума! 
След няколко часа четене, главоблъскане и подобни действия, постигнах някакъв средно-задоволителен резултат по въпросната задача, но с известни проблеми в judge системата. (Runtime Error, и един мистериозен space в изхода при изкарването на десетиците (50,60 etc.)).

Линк към кода(за да няма спам):

http://pastebin.com/8yA5iTDz

Моля за критики, съвети, идеи, каквото имате! 

1
Основи на програмирането 29/02/2016 16:16:45
EmanuilNikolov avatar EmanuilNikolov 31 Точки

Zdr! Хвърлих един поглед и го тествах, кода който си споделил => https://pastebin.com/8yA5iTDz , какво връща като грешки =>

1. за 50 оставяш допълнително празно място;

2. не хващаш 0 като стойност;

3. за 30 пак има допълнителен space;

4. 41 грешно изписване;

5. не хващаш случаят когато ти подват отрицателни стойности.

Прилагам едно мое решение на зада4ата =>

using System;
using System.Collections.Generic;

public class Program
{
	public static void Main()
	{
		
		var n = int.Parse((Console.ReadLine()));
		//
		string[] toTen = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
		string[] teen = {"eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
		string[] toTy = {"","twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
		//
		
		var temp = "";
		if(n>=0 && n<=10)
		{
			temp = (toTen[n]);
		}
		else if(n>10 && n<=19)
		{
			temp = (teen[n%10-1]);
		}
		else if(n>19 && n <100)
		{
			if(n%10==0)
			{
				temp = toTy[n/10-1];
			}
			else
			{
				temp =toTy[n/10-1]+" "+toTen[n%10];
			}
			
		}
		else if(n==100)
		{
			temp = "one hundred";
		}
		else
			temp = "invalid number";
		Console.WriteLine(temp);
		
		
	}
}

 

0
12/09/2018 10:41:31