Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2013, 14:42   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию Проверить окончания у слов

Как проверить окончания у слов,например если получается число 1001 то пишет 1001 пирожок,если 128 то пишет 128 пирожков,или например 262 пирожка и так для любых чисел?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 11.09.2013, 14:55   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

во-первых, зависит от рода слова и самого слова (сравните 101 пирожок, 105 пирожков, но 101 лиса, 105 лис, или в случае возраста: 1 год, но 5 лет.)

во-вторых, смотрите в сторону целочисленного деления
вот код на Паскаль, его легко можно переложить на C#:
Код:
var b, c: integer;
begin
  Writeln('Введите ваш возраст');
  Readln(b);
  if b <= 0 then WriteLn('Вам 0 лет')
  else begin
    c := b mod 100;
    if (c >= 10) and (c <= 20) then WriteLn('Вам ', b, ' лет')
    else
      case (b mod 10) of
        1: WriteLn('Вам ', b, ' год');
        2..4: WriteLn('Вам ', b, ' года');
        5..9, 0: WriteLn('Вам ', b, ' лет')
      end;
  end;
  Writeln('Для выхода нажмите <Enter>');
  Readln;
end.
p.s. mod это операция целочисленного деления...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2013, 15:06   #3
MadeManZ
 
Регистрация: 10.09.2013
Сообщений: 8
По умолчанию

Зачем так сложно?
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            String i,g;
            int h;
            i = Console.ReadLine();
            g = i.Substring(i.Length - 1,1);
            h = Convert.ToInt32(g);
            switch(h){
                case 0:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                    i += " пирожков";
                    break;
                case 1:
                    i += " пирожок";
                    break;
                case 2:
                case 3:
                case 4:
                    i += " пирожка";
                    break;



            }
            Console.WriteLine(i);
            Console.ReadLine();
               
        }
    }
}
MadeManZ вне форума Ответить с цитированием
Старый 11.09.2013, 15:22   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

MadeManZ, 12 пирожков.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.09.2013, 17:18   #5
MadeManZ
 
Регистрация: 10.09.2013
Сообщений: 8
По умолчанию

Упс , сейчас поправлю
MadeManZ вне форума Ответить с цитированием
Старый 11.09.2013, 17:25   #6
MadeManZ
 
Регистрация: 10.09.2013
Сообщений: 8
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            String i,g,temp;
            int h;
            i = Console.ReadLine();
            
            g = i.Substring(i.Length - 1,1);
            if (i.Length != 1)
                temp = i.Substring(i.Length - 2, 1);
            else
                temp = "0";
            h = Convert.ToInt32(g);
            if (Convert.ToInt32(temp) != 1)
            {
                
                switch (h)
                {
                    case 0:
                    case 5:
                    case 6:
                    case 7:
                    case 8:
                    case 9:
                        i += " пирожков";
                        break;
                    case 1:
                        i += " пирожок";
                        break;
                    case 2:
                    case 3:
                    case 4:
                        i += " пирожка";
                        break;



                }
            }
            else
              i += " пирожков";


                
            
            Console.WriteLine(i);
            Console.ReadLine();
               
        }
    }
}
MadeManZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[B]Как проверить базу на наличие слов?[/B] Михаил Наимов PHP 1 02.05.2012 08:11
Дана последовательность слов . Проверить , правильность написания жи и ши . Кристина Н Паскаль, Turbo Pascal, PascalABC.NET 7 02.12.2011 07:52
Как добавить к концу нескольких слов одинаковые окончания kisa2010 Помощь студентам 20 03.06.2010 14:21
Как добавить к концу нескольких слов одинаковые окончания kisa2010 Microsoft Office Word 2 03.06.2010 13:09
Проверить соответствие слов begin end..... RasKolnikoV Помощь студентам 3 13.05.2009 16:17