Как вывести первую цифру числа в c
Перейти к содержимому

Как вывести первую цифру числа в c

  • автор:

Вывести первую цифру числа

Дано неотрицательное целое число. Найдите и выведите первую цифру числа. Формат входных данных: На вход дается натуральное число, не превосходящее 10000. Формат выходных данных: Выведите одно целое число — первую цифру заданного числа. Sample Input:

1234 

Sample Output:
Вот мой код:

package main import "fmt" func main() < var a int fmt.Print("Введите число: ") fmt.Scan(&a) if a < 10000 < a = a / 100 / 10 fmt.Println(a) >else < fmt.Println("Вы превысили число, не должно превышать 10000") >> 

Отслеживать
задан 26 авг 2019 в 18:16
63 1 1 золотой знак 2 2 серебряных знака 8 8 бронзовых знаков
А как вы решили бы эту задачку?
26 авг 2019 в 18:25

Я так решил ну сказали то что не правильно, любое натуральное число должно приходить например Sample Input: 234 Sample Output: 2

26 авг 2019 в 18:32
А вы свой код проверяли? Проверьте на числах разной длины, сразу станет видна ошибка.
26 авг 2019 в 19:22

да, проверял но он только работает с 4-х значным числом, а мне нужно чтобы работал 3-х значным и 2-х значным и всегда выводил первую цифру. Голову уже поломал какие только идеи не были и весь прикол в том что нужно сделать строго через условный оператор. Как бы условия задачи входит тоже

26 авг 2019 в 19:34

Исходное число вводится как строковый тип. Вот нафига его конвертировать в числовой тип, чтобы потом на выходе опять конвертировать в строковый? Опять же задание не предусматривает входного контроля и обработки неправильного ввода. И вообще задание противоречивое — согласно заданию, исходное число неотрицательное целое (в т.ч. возможен и ноль), но в описании входного формата оно натуральное.

Найти первую цифру числа

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

Добрый день,вроде бы задание не сложное ,но у меня возникает проблема,даже алгоритм есть ( не уверен в его правильности) нуждаюсь в помощи: Дано целое число,нужно определить его первую цифру с помощью элементарных операций (* / + -)

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Определить сколько цифр в числе, найти первую цифру числа,найти предпоследнюю цифра числа
Дано натуральное число n (n<10000). Определить сколько цифр в числе, найти первую цифру числа,найти.

Найти первую цифру числа
Дано натуральное число n. Найти первую цифру числа n

Переставить первую и последнюю цифру числа
Дано натуральное число n. Нужно переставить первую и последнюю цифру числа , например ввести.

Эксперт C

27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979

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

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

Только на самом деле надо вот так:

Ваше занудство начинает вызывать у меня даже нечто похожее на уважение

Добавлено через 3 минуты

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

какое первое число выдаст
Ну, ошибся человек. Не будем строго судить. Вечер на дворе. И всетки так:

while(n>9) n /=10;

Эксперт по электронике

8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,527

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

ну это же тоже самое что и (n >= 10)
и скорее всего, правда не уверен, ассемблерный листинг будет идентичен
разумеется речь идет об целочисленных
при плавающих второй вариант предпочтительнее

430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610

Что-то я запутался в знаках. Наверное, я имел в виду > 9, но это то же самое, что >= 10.
Не знаю, что я имел в виду. Всё, пошёл спать.

Эксперт C

27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979

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

Всё, пошёл спать.
Спокойной ночи! Приятных снов! И пусть вам будет примером Менделеев!

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

12461 / 7485 / 1754
Регистрация: 25.07.2009
Сообщений: 13,764
До чего же у нас на форуме хеловорлды популярны. Третяя страница уже

1 2 3
unsigned first_digit(unsigned n) { return ( n  10 ) ? n : first_digit(n / 10); }

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вывести рекурсию числа и сравнить первую и последнюю цифру
рекурсию числа сделал, но когда пытаюсь сравнить нужные цифры введенного числа, при вводе.

Целой переменной D присвоить первую цифру из дробной части вещественного положительного числа
целой переменно D присвоить первую цифру из дробной части вещественного положительного числа .

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

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

Первая цифра числа

Найти первую цифру целого числа. Отсчёт начинать с наивысшего разряда.

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

Одно целое 64-х разрядное число, содержащее не менее одной цифры. Число может быть отрицательным.

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

Выведите первую цифру заданного числа.

Алгоритм решения задачи

  • Удаляем из числа последнюю цифру пока оно больше или равно 10;

Решение

using System; class Program < static void Main(string[] args) < var n = Math.Abs(Convert.ToInt64(Console.ReadLine())); while (n >= 10) < n /= 10; > Console.WriteLine(n); > > 

Найти первую цифру числа

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

Добрый день,вроде бы задание не сложное ,но у меня возникает проблема,даже алгоритм есть ( не уверен в его правильности) нуждаюсь в помощи: Дано целое число,нужно определить его первую цифру с помощью элементарных операций (* / + -)

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Определить сколько цифр в числе, найти первую цифру числа,найти предпоследнюю цифра числа
Дано натуральное число n (n<10000). Определить сколько цифр в числе, найти первую цифру числа,найти.

Найти первую цифру числа
Дано натуральное число n. Найти первую цифру числа n

Переставить первую и последнюю цифру числа
Дано натуральное число n. Нужно переставить первую и последнюю цифру числа , например ввести.

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

12461 / 7485 / 1754
Регистрация: 25.07.2009
Сообщений: 13,764

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

целое число,нужно определить его первую цифру

Пока частное от деления на 10 больше нуля, делить на 10. Последнее отличное от нуля частное — первая цифра.
Ну или сделать вид, что не заметили

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

с помощью элементарных операций (* / + -)

1 2 3 4 5 6 7 8 9 10 11
#include #include int main(void) { unsigned n; while ( printf("Number: ") && scanf("%u", &n) == 1 && n ) printf("First digit: %u\n", n / (unsigned)pow(10.0, floor(log10(n)))); return 0; }

Регистрация: 28.07.2013
Сообщений: 13

А у меня вот так вот получилось. Используется только деление и возведение в степень. Можно вводить любое число.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include #include main() { int n=0; // Счетчик int a; //Это и будет первая цифра int integer; //Введенная цифра printf("Enter integer: "); scanf("%d", &integer); while(n>=0){ a = integer / pow(10,n); if (a0){ a = integer / pow(10,n-1); break;} n++; } printf("First digit is: %d", a); return 0; }

430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610

Вообще-то никто не запрещает отрицательному числу тоже состоять из цифр.

1 2 3 4 5 6 7 8 9 10
int first_digit(int n) { if( n  0 ) n = -n; int digit = 0; while( n ) { digit = n % 10; n /= 10; } return digit; }

Эксперт C

27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979

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

Вообще-то никто не запрещает отрицательному числу тоже состоять из цифр.
Но тогда первая цифра будет «-»
Ну и мои 2 копейки.

if (n0) n = -n; while (n >= 10) n /= 10;

430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610

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

Но тогда первая цифра будет «-»

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

while (n >= 10) n /= 10;

Мой способ интуитивно понятнее, что косвенно подтверждается тем, что Вы допустили элементарную ошибку. Хотя сам принцип мне очень нравится. А вот за оформление — неуд. Нельзя писать циклы в одну строку. Я раньше единственное исключение делал для for с тривиальным телом, но потом перестал. Даже пустые надо писать так:

while( *str++ ) ;

6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3

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

А вот за оформление — неуд. Нельзя писать циклы в одну строку.

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

Даже пустые надо писать так:
Пожалуйста пруф в виде ссылки на гайдлайн от гугла или ID Software.

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

12461 / 7485 / 1754
Регистрация: 25.07.2009
Сообщений: 13,764

Vtulhu, Байт, это самое отрицательное число запросто может INT_MIN равняться. Вы уж и эту ситуацию обрабатывайте как-нибудь, а то не комильфо как-то.

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

Нельзя писать циклы в одну строку.

Разве-что по морально нравственным соображениям. Язык позволяет хоть всю программу в одну строку записать.

430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610

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

Пожалуйста пруф в виде ссылки на гайдлайн от гугла или ID Software.
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3

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

Да хоть от них обеих:
Сие для плюсов. Незачет.

Vtulhu, странные у Вас фантазии. Вы для них в сети более подходящее место поищите. На форуме программистов как-то не приветствуется.

Меню пользователя @ easybudda
Посетить домашнюю страницу easybudda

Регистрация: 12.01.2014
Сообщений: 48
Вот у меня алгоритм,но он весьма странный- a=c/10 b=c-a*10
но как привести это все в норм вид..

Эксперт C

27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979

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

Вот у меня алгоритм,но он весьма странный- a=c/10 b=c-a*10
И впрямь есть некоторые странности, тк. это дает последнюю цифру числа c.

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

как привести это все в норм вид..
Что имеется в виду? Если запись на языке Си, то что-то вроде

1 2 3 4 5
int a, b, c; // Ввести с a = c/10; b = c - a*10; printf ("Last cifer=%d\n", b);

Добавлено через 2 часа 9 минут

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

Байт, это самое отрицательное число запросто может INT_MIN равняться. Вы уж и эту ситуацию обрабатывайте как-нибудь, а то не комильфо как-то.

Вы абсолютно правы, и возражение может быть только одно. Что наши компьютеры? — Конечные автоматы, сколько тера-гига-байтов не набивай им в башку. И с простым натуральным рядом им не справиться. Кишка тонка у конечного автомата.

Эксперт по электронике

8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,527

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

Вот у меня алгоритм,но он весьма странный- a=c/10 b=c-a*10
это все равносильно

b=c%10;

Регистрация: 12.01.2014
Сообщений: 48
нельзя использовать проценты,вот именно по этому я и создал тему

Эксперт C

27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979

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

нельзя использовать проценты,вот именно по этому

Добавлено через 1 минуту
В посте #5 вы не одного процента не найдете

Эксперт по электронике

8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,527

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

нельзя использовать проценты,

ну дак не используй
я тебе показал, что то что ты привел этои есть остаток от деления(как ты называешь проценты)
и чем тебе решение

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

while (n >= 10) n /= 10;
не угодило.
никаких «процентов»
после цикла в n первая цифра числа
Регистрация: 12.01.2014
Сообщений: 48
спасибо,вы мне очень помогли
430 / 384 / 200
Регистрация: 12.08.2011
Сообщений: 1,610

Только на самом деле надо вот так:

1 2 3
while( n >= 9 ) { n /= 10; }

Эксперт по электронике

8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,527

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

Только на самом деле надо вот так:
какое первое число выдаст
если n =9 99 90 ну и так далее
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Вывести рекурсию числа и сравнить первую и последнюю цифру
рекурсию числа сделал, но когда пытаюсь сравнить нужные цифры введенного числа, при вводе.

Целой переменной D присвоить первую цифру из дробной части вещественного положительного числа
целой переменно D присвоить первую цифру из дробной части вещественного положительного числа .

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

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *