Как найти третью цифру числа

Kos12

0 / 0 / 0

Регистрация: 25.10.2022

Сообщений: 9

1

Напишите программу, которая выводит третью цифру заданного числа или сообщает, что третьей цифры нет

25.10.2022, 21:28. Показов 9904. Ответов 12

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

решить применяя метод.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
nt ThirdDigit(int number)
{
   if (number >=100)
    {
     while (number > 999)
     {
        number = number / 10;
     }
        int result = number % 10;
    }
    else
    {
     int result = -1; // [B] Переменной "result" присвоено значение но оно ниразу не используется[/B]
    }
 
return result; // [B]имя "result" не существует в текущем контексте[/B]
}
 
Console.Write("Input three-digit number: ");
int number1 = Convert.ToInt32(Console.ReadLine());
 
if (ThirdDigit(number1) == -1)
Console.WriteLine("третьей цифры нет");
else
Console.WriteLine($"Third digit is {ThirdDigit(number1)}");

Добрый вечер! Долго бьюсь с задачей, не могу понять ошибки с переменной result. Прошу помочь, если кто сможет



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

25.10.2022, 21:28

Ответы с готовыми решениями:

Задача: Напишите функцию, которая возвращает третью цифру заданного числа типа int
int TretieChislo(x)
{

}

Напишите программу, которая выводит на экран первую цифру целого числа
Дано двухзначное целое число . Напишите программу , которая выводит на экран первую цифру этого…

Написать программу, которая выводит последнюю цифру заданного числа и произведение всех составляющих введенного числа
Вот, что смог написать, дальше понять не могу, как обратиться к методу, который записывает…

Напишите программу, которая выводит все разложения заданного числа N на слагаемые
6. Напишите программу, которая выводит все разложения заданного числа N на слагаемые. Например,…

Составить программу, которая выводит на экран число, полученное при перестановке первой и последней и второй и третьей цифр заданного числа
Пользователь вводит четырехзначное число. Составить программу, которая выводит на экран число,…

12

Diamante

3457 / 2464 / 1170

Регистрация: 14.08.2016

Сообщений: 8,158

25.10.2022, 21:32

2

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        int ThirdDigit(int number)
        {
            int result = -1;
            if (number >= 100)
            {
                while (number > 999)
                {
                    number = number / 10;
                }
                result = number % 10;
            }
            return result; 
        }



2



0 / 0 / 0

Регистрация: 25.10.2022

Сообщений: 9

25.10.2022, 21:38

 [ТС]

3

Спасибо огромное! Только начинаю, всю голову сломал



0



0 / 0 / 0

Регистрация: 29.03.2023

Сообщений: 8

29.03.2023, 20:33

4

Добрый вечер! А можете подсказать, почему переменная int result = -1 ? )))Я тоже из начинающих.



0



2078 / 1937 / 439

Регистрация: 17.02.2019

Сообщений: 3,099

29.03.2023, 20:37

5

Цитата
Сообщение от Cyborg1975
Посмотреть сообщение

почему переменная int result = -1

Если метод вернет -1 тогда третей цифры нет, то есть двухзначное число, там условие если больше или равно 100



1



0 / 0 / 0

Регистрация: 29.03.2023

Сообщений: 8

29.03.2023, 22:33

6

Цитата
Сообщение от January29
Посмотреть сообщение

Если метод вернет -1 тогда третей цифры нет, то есть двухзначное число, там условие если больше или равно 100

Благодарю.)) Всё простое на ладони. Засиделся за компом.



0



greg zakharov

Покинул форум

5351 / 1387 / 344

Регистрация: 07.05.2015

Сообщений: 2,712

30.03.2023, 00:22

7

C#
1
2
3
4
5
6
static Int32 ThirdDigit(Int32 n) {
  Int32 sz = (Int32)Math.Floor(Math.Log10(n) + 1);
  return 3 <= sz ? (Int32)Math.Floor((Double)(
    (n % Math.Pow(10, sz - 2)) / Math.Pow(10, sz - 3)
  )) : -1;
}



1



Cyborg1975

0 / 0 / 0

Регистрация: 29.03.2023

Сообщений: 8

30.03.2023, 10:21

8

Цитата
Сообщение от greg zakharov
Посмотреть сообщение

C#
1
2
3
4
5
6
static Int32 ThirdDigit(Int32 n) {
  Int32 sz = (Int32)Math.Floor(Math.Log10(n) + 1);
  return 3 <= sz ? (Int32)Math.Floor((Double)(
    (n % Math.Pow(10, sz - 2)) / Math.Pow(10, sz - 3)
  )) : -1;
}

Спасибо огромное! Но я еще учусь и код пока гораздо проще. Уверен, что у преподавателей будут вопросы по такому решению) Но для изучения интересно. Еще раз благодарю)



0



618 / 383 / 134

Регистрация: 06.03.2017

Сообщений: 1,436

30.03.2023, 11:01

9

greg zakharov, что это за математическая формула?



0



2727 / 1644 / 869

Регистрация: 14.04.2015

Сообщений: 5,608

30.03.2023, 12:02

10

greg zakharov, а че, если попросят четвертую цифру найти?



0



116rus

527 / 244 / 116

Регистрация: 19.10.2013

Сообщений: 848

30.03.2023, 14:28

11

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  internal class Program
    {
        static void Main(string[] args)
        {
            var c = new NumToArray(1234);
            var d = c[2];
 
            Console.WriteLine(d);
        }
    }
    public class NumToArray
    {
 
        private readonly List<int> _values;
 
        public NumToArray()
        {
            _values = new List<int>();
        }
        public NumToArray(int i) : this()
        {
            while (i > 0)
            {
                _values.Insert(0, i % 10);
                i /= 10;
            }
        }
 
        public int this[int index]
        {
            get
            {
                if (_values.Count == 0)
                {
                    throw new ArgumentException("Исходное число пустое!");
                }
 
                if (index > _values.Count - 1)
                {
                    throw new IndexOutOfRangeException("");
                }
 
                return _values[index];
            }
        }
    }



0



Cyborg1975

0 / 0 / 0

Регистрация: 29.03.2023

Сообщений: 8

30.03.2023, 16:12

12

Цитата
Сообщение от 116rus
Посмотреть сообщение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  internal class Program
    {
        static void Main(string[] args)
        {
            var c = new NumToArray(1234);
            var d = c[2];
 
            Console.WriteLine(d);
        }
    }
    public class NumToArray
    {
 
        private readonly List<int> _values;
 
        public NumToArray()
        {
            _values = new List<int>();
        }
        public NumToArray(int i) : this()
        {
            while (i > 0)
            {
                _values.Insert(0, i % 10);
                i /= 10;
            }
        }
 
        public int this[int index]
        {
            get
            {
                if (_values.Count == 0)
                {
                    throw new ArgumentException("Исходное число пустое!");
                }
 
                if (index > _values.Count - 1)
                {
                    throw new IndexOutOfRangeException("");
                }
 
                return _values[index];
            }
        }
    }

Добрый день! Благодарю. Правда тоже пока не очень понял код, т.к. только на начальном этапе обучения)



0



Покинул форум

5351 / 1387 / 344

Регистрация: 07.05.2015

Сообщений: 2,712

30.03.2023, 17:33

13

Pilarentes, как-то попалось в формулах Бэкуса-Наура.
AndreyVorobey, ну дык в чём проблема, скажем, ввести дополнительный параметр функции?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

30.03.2023, 17:33

Помогаю со студенческими работами здесь

Составить программу, которая выводит на экран число, полученное при перестановке первой и последней и второй и третьей цифр заданного числа
Пользователь вводит четырехзначное число. Составить программу, которая выводит на экран число,…

Напишите программу, которая выводит в столбик цифры введённого числа, начиная с последней
Напишите программу, которая выводит в столбик цифры введённого числа, начиная с последней….

Напишите программу, которая выводит в столбик цифры введённого числа, начиная с последней
Nemovok, Ты большой молодец ты решил правильно.Я правда удалил строчку где выводит
&quot;std::cout &lt;&lt;…

Напишите программу, которая выводит в столбик цифры введённого числа, начиная с последней
Напишите программу, которая выводит в столбик цифры введённого числа, начиная с последней….

Напишите программу, которая выводит на экран все цифры числа, начиная с первой
Напишите программу, которая выводит на экран все цифры числа, начиная с первой.

Входные данные…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

13

Как в четырёхзначном числе найти третье число?

ыар смр



Знаток

(266),
на голосовании



2 года назад

Например, 1234 первое можно найти так: 1234/1000,второе 1234 / 100 % 10,четвёртое 1234 / 10

Голосование за лучший ответ

Abram Pupkin

Гений

(91334)


2 года назад

Интересно девки пляшут …
первое 1234/1000 =1,234
если отбросить дробь то получится “1”

четвертое 1234/10 = 123,4 а здесь получается “123”
какие будут еще предложения ?
а потом я напишу ответ

P.S.
надо указывать язык программирования !
Напр в паскале можно через mod (остаток) а в excel – может “вырезать” с любого места любое кол-во

Секретный Кот

Оракул

(85809)


2 года назад

Ищем десятки…. 1234:10=123,4….Округляем=123….Снова умножаем*10=1230
Ищем сотни (чтоб отбросить)…. 1234:100=12,34….Округляем=12….Снова умножаем*100=1200
Ищем разницу (большее минус меньшее) 1230-1200=30
Нужна вторая цифра справа (десятки), значит делим на 10, получаем 30:10=3

int programm, num, count, numDigit; Boolean begin = true; while (begin) { Console.WriteLine(——); Console.WriteLine(Введите число для соответствующей задачи или иное для выхода:); Console.WriteLine(1. Принимает на вход трёхзначное число и на выходе показывает вторую цифру этого числа.); Console.WriteLine(2. Выводит третью цифру заданного числа или сообщает, что третьей цифры нет.); Console.WriteLine(22. Тоже что и предыдущая но решение через строку.); Console.WriteLine(3. Принимает на вход цифру, обозначающую день недели, и проверяет, является ли этот день выходным.); programm = Convert.ToInt32(Console.ReadLine()); switch (programm) { case 1: // Задача 10: Напишите программу, которая принимает на вход трёхзначное число и на выходе показывает вторую цифру этого числа Console.Write(Введите трёхзначное число: ); num = Convert.ToInt32(Console.ReadLine()); // поиграемся с For и логическими операторами. Проверка числа и выход при 3-ей ошибке for (int ii = 1; ii < 3 && (num <= 100 | num > 999); ii++) { Console.Write(ii + Кажется это не трёхзначное число, попробуем ещё раз: ); num = Convert.ToInt32(Console.ReadLine()); } if (num <= 100 | num > 999) { Console.WriteLine(Чтото пошло не так, программа прервана: ); break; } //Заканчиваем баловаться, решаем ДЗ num = num / 10 % 10; Console.WriteLine($”Вторая цифра введённого числа: {num}); break; case 2: // Задача 13: Напишите программу, которая выводит третью цифру заданного числа или сообщает, что третьей цифры нет. Console.Write(Введите любое число: ); num = Convert.ToInt32(Console.ReadLine()); numDigit = NumberDigit(num);// Пробуем функцию/метод. (прим вероятно подошло бы и для для проверки первой задачи) if (numDigit <= 2) { Console.WriteLine(третьей цифры нет); } else { if (numDigit > 3) { num = num / Convert.ToInt32(Math.Pow(10, numDigit 3)); // немного Math } num = num % 10; Console.WriteLine($”Третья цифра введённого числа: {num}); } break; case 3: // Задача 15: Напишите программу, которая принимает на вход цифру, обозначающую день недели, и проверяет, является ли этот день выходным. Console.Write(Введите число от 1 до 7:); num = Convert.ToInt32(Console.ReadLine()); if (num >= 1 && num <= 7) { if (num == 6 | num == 7) Console.WriteLine(Сегодня выходной); else Console.WriteLine(Сегодня рабочий день); } else Console.WriteLine(Не верное число); break; case 22: // Задача 13: Напишите программу, которая выводит третью цифру заданного числа или сообщает, что третьей цифры нет. Console.Write(Введите любое число: ); num = Convert.ToInt32(Console.ReadLine()); string numStr = Convert.ToString(num); numDigit = numStr.Length; if (numDigit > 2) Console.WriteLine($”Третья цифра введённого числа: {numStr[2]}); else Console.WriteLine(третьей цифры нет); break; default: begin = false; break; } } // Проверка разряда числа. int NumberDigit(int number) { count = 0; while (number > 0) { number = number / 10; count++; } return count; }

Как определить цифру из данного числа?
Например, число 1337 состоит из 4 цифр. Как узнать вторую цифру ?

задан 20 ноя 2017 в 4:46

tonymore's user avatar

tonymoretonymore

3292 серебряных знака16 бронзовых знаков

6

string str = 1337.ToString();
Console.WriteLine(str[1]);

нумерация в строках такая же как и в массивах, но доступ по индексу к элементу доступен только для чтения

ответ дан 20 ноя 2017 в 4:55

Alexandr's user avatar

AlexandrAlexandr

4542 серебряных знака15 бронзовых знаков

Способ без превращения числа в строку (будет работать быстрее):

static void Main(string[] args)
{
    int n = 534534623;
    int d = GetSecondDigit(n);
    Console.WriteLine(d);
    Console.ReadKey();
}

static int GetSecondDigit(int k)
{
    while (k >= 100) k /= 10;
    int d = k % 10;
    return d;
}

Хотя, конечно, если у вас на входе строка, то проще получить второй символ по индексу (как в соседнем ответе).

ответ дан 20 ноя 2017 в 6:08

Андрей NOP's user avatar

Андрей NOPАндрей NOP

28.3k4 золотых знака39 серебряных знаков77 бронзовых знаков

Делим без остатка на 100, затем берём остаток от деления на 10. Не понимаю, зачем вам отправили конвертацию в строку и даже отдельную функцию с циклом.

ответ дан 23 дек 2020 в 20:43

Павел's user avatar

ПавелПавел

543 бронзовых знака

1


        Console.WriteLine("Введите трехзначное число");
        int.TryParse(Console.ReadLine()!, out int k);
    
        if (k>999 || k<100)
        {
        Console.WriteLine("Не трехзначное число!!!");
        return;
        }
        int GetSecond(int k)
        {
        while (k >= 100) k /= 10;
        int d = k % 10;
        return d;
        }
        Console.WriteLine(GetSecond(k));

мэйби как то так?

ответ дан 16 мар в 11:07

KatrinBlade's user avatar

1

Формулировка задачи:

Помогите написать программу на Си. Дано натуральное число n(n>99). Определить его третью(с начала) цифру с использованием одного оператора цикла. Заранее спасибо :3

Код к задаче: «Определить третью цифру числа»

textual

Листинг программы

#include <stdio.h>
 
int main()
{
    unsigned int n;
    scanf("%u", &n);
    if (n<=99)
       return -1;
    while (n>999)
        n/=10;
    printf("%u", n%10);
    return 0;
}

Полезно ли:

10   голосов , оценка 4.000 из 5

Похожие ответы

  1. Определить сумму цифр числа
  2. Определить, максимальная цифра числа расположена ближе к началу или концу числа
  3. Определить, сколько цифр содержит заданное целое число
  4. Определить, является ли сумма максимальной и минимальной цифр числа четной
  5. Определить произведение всех четных цифр числа
  6. Определить, сколько цифр в числе равно 7
  7. Определить количество цифр в числе а, которые больше или равны числу 5
  8. Дано натуральное число a (a<100). Определить количество цифр и их сумму
  9. Определить, является ли сумма цифр числа двузначным числом
  10. Вывести символ с кодом, равным третьем числу, в место экрана, которое определяется первыми двумя числами

Добавить комментарий