2 / 0 / 0
Регистрация: 22.09.2018
Сообщений: 147
1

Найти количество цифр в заданном десятичном числе

26.09.2018, 13:38. Показов 1648. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
2. Найти количество цифр в десятичном числе k. (чисел 47)

Можно код с циклами for,while и do while. БЕЗ ИСПОЛЬЗОВАНИЯ МАССИВОВ!!!!!!!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2018, 13:38
Ответы с готовыми решениями:

Найти количество цифр в десятичном числе k
Найти количество цифр в десятичном числе k.

Как найти количество цифр в десятичном числе?
Весь вопрос в названии темы:(

Найти количество цифр в заданном натуральном числе
найти сколько цифр в данном натуральном числе n(n<=100) c++ Очень надо.

Найти количество цифр в числе, заданном пользователем
Пользователь вводит с клавиатуры число — программа должна показать сколько в данном числе цифр....

14
Консультант Витте
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
27.09.2018, 10:25 2
zxcgf,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main() {
    int num = 0, cnt = 0;
    
    std::cout << "Number: ";
    std::cin >> num;
    
    while (num) {
          num /= 10;
          cnt++;
    }
    std::cout << "Number of digitals: " << cnt << std::endl;
    
    system("pause");
    return 0;
}
2
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,874
27.09.2018, 11:20 3
C
1
2
if(x==0)x=1; else
    x = log10(x)+1;
1
822 / 625 / 321
Регистрация: 24.02.2017
Сообщений: 2,205
27.09.2018, 12:36 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main() {
 int k;
 char s[18];
 
 cin>>k;
 k<0 ? cout<<strlen(itoa(-1*k,s,10)):cout<<strlen(itoa(k,s,10));
 
 system("pause");
 return 0;
}

десятичные числа бывают отрицательные, положительные и равные нулю.
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,874
27.09.2018, 13:48 5
C
1
2
3
if( x == 0 )return 1;
if( x < 0 )x=-x; //ноль не является цифрой!
return log10(x)+1;
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
27.09.2018, 13:53 6
Цитата Сообщение от zxcgf Посмотреть сообщение
(чисел 47)
в 47 числах нужно найти ? или в числе 47 цифр ? уточните условие
0
171 / 104 / 25
Регистрация: 17.10.2010
Сообщений: 1,146
27.09.2018, 13:56 7
Цитата Сообщение от повар1 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main() {
*int k;
*char s[18];
cin>>k;
*k<0 ? cout<<strlen(itoa(-1*k,s,10)):cout<<strlen(itoa(k,s,10));
system("pause");
*return 0;
}
Severity Code Description Project File Line Suppression State
Error C4996 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa. See online help for details. Number count c:\users\asus\desktop\projects\c++\console\p4054\number count\number count\number count\number count.cpp 10
Компилирую в VS2015. Почему такая ошибка выходит?
0
Yetty
27.09.2018, 14:08
  #8

Не по теме:

isaak, так вроде пишет всё:

Цитата Сообщение от isaak Посмотреть сообщение
The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa
предлагается использовать _itoa

0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,874
27.09.2018, 15:18 9
Но лучше прибить такое предупреждение чтобы не подталкивало к кривому коду. Что-то вроде
C
1
#define _CRT_SECURE_NO_WARNINGS
0
165 / 108 / 57
Регистрация: 30.08.2018
Сообщений: 357
27.09.2018, 15:31 10
Цитата Сообщение от isaak Посмотреть сообщение
Error C4996 'itoa': The POSIX name for this item is deprecated
Функция не просто устарела. Её нет в С++ и ANCI C (non-standard function).
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.
1
Заблокирован
27.09.2018, 16:50 11
C++
1
2
3
4
5
6
7
8
unsigned count = 0;
do 
{
  x /= 10;
  count++;
} while (x);
 
// при х == 0 count должен быть = 1.
0
171 / 104 / 25
Регистрация: 17.10.2010
Сообщений: 1,146
27.09.2018, 17:52 12
Цитата Сообщение от Yetty Посмотреть сообщение
Не по теме:
isaak, так вроде пишет всё:
Сообщение от isaak
The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa
предлагается использовать _itoa
Как раз и ругается на itoa.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Но лучше прибить такое предупреждение чтобы не подталкивало к кривому коду. Что-то вроде
CВыделить код
1
#define _CRT_SECURE_NO_WARNINGS
К сожалению не помогло, ошибка сохранилась.
Цитата Сообщение от JaponDemon Посмотреть сообщение
Функция не просто устарела. Её нет в С++ и ANCI C (non-standard function).
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.
Скорей всего вы правы.
0
Yetty
27.09.2018, 19:28
  #13

Не по теме:

Цитата Сообщение от isaak Посмотреть сообщение
Как раз и ругается на itoa.
Понятно что даёт ошибку. Вы разницу не видите ? Пишу словами:
_itoa (начинается с нижнего подчёркивания)
т.е. замените itoa на _itoa

0
165 / 108 / 57
Регистрация: 30.08.2018
Сообщений: 357
27.09.2018, 22:14 14
Цитата Сообщение от isaak Посмотреть сообщение
Скорей всего вы правы.
Не собирался быть правым или не правым
Цитата Сообщение от JaponDemon Посмотреть сообщение
This function is not defined in ANSI-C and is not part of C++, but is supported by some compilers.
вот отсюда скопировал
http://www.cplusplus.com/reference/cstdlib/itoa/
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,874
28.09.2018, 09:29 15

Не по теме:

Цитата Сообщение от Yetty Посмотреть сообщение
Пишу словами:
_itoa (начинается с нижнего подчёркивания)
т.е. замените itoa на _itoa
пишу словами: это костыль, и пользоваться им надо только в крайнем случае


Впрочем, вычисление количества цифр через преобразование в строку тоже тот еще костыль. Но если уж очень хочется удалять гланды через... то можно воспользоваться sprintf() или написать обертку:
C
1
2
3
4
char* itoa(int val, char *buf, int radix){
  sprintf(buf, "%i", val);
  return buf;
}
или
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char* itoa(int val, char *buf, int radix){
  char *tmp = buf + ((size_t)(log(val)/log(radix)))+2; //да-да, сначала вычисляем длину числа
  char sign=0;
  int dig;
  *(tmp--)=0;
  if(val < 0)sign=1;
  do{
    dig = val % radix;
    if(dig < 10)dig+='0';
      else dig += 'A'-0x0A;
    *(tmp--) = dig;
    val /= radix;
  }while(val);
  if(sign)tmp[0]='-'; else tmp++;
  
  return tmp;
}
0
28.09.2018, 09:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2018, 09:29
Помогаю со студенческими работами здесь

Найти сумму цифр в десятичном числе k
Найти сумму цифр в десятичном числе k

Вывести на экран количество цифр в заданном числе и сумму этих цифр
я начинающий! помогите! мне на екзам! Дано натуральное число а (a&lt;100). Напишите программу,...

Определить количество цифр в заданном числе
Вводится целое число (не более 4 разрядов). Определить количество цифр в нем.

Определить количество цифр в заданном числе
int main(int argc, char *argv) { int a,i; printf(&quot;vvedi chislo&quot;); scanf(&quot;%d&quot;,&amp;a); i=0; ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru