С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/296: Рейтинг темы: голосов - 296, средняя оценка - 4.52
0 / 0 / 1
Регистрация: 24.03.2010
Сообщений: 46

Найти количество цифр в числе

17.06.2010, 21:43. Показов 57725. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
уважаемые эксперты подскажите в чем проблема. начал изучать язык С и надо было переписать программу которая встречалась в паскале с использованием рекурсии. Переписал, а что то видимо не так сделал. вот два кода подскажите пожалуйста в чем ошибка
Pascal
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
  uses crt;
  var m:integer;
          n:longint;
 
function schet(n:longint; var m:integer):integer;
 begin
   if n div 10 = 0 then
   begin
       inc(m);
       schet:=m;
   end
   else
   begin
        n:=n div 10;
        inc(m);
        schet:=schet(n,m);
   end;
 end;
 
procedure input_data(var n:longint);
 begin
  writeln('Введите число:');
  readln(n);
 end;
 
procedure output_data(schet:integer);
 begin
   writeln('Количество цифр в введенном вами числе: ', schet);
   readkey;
 end;
 
begin
clrscr;
writeln('Данная программа считает количество цифр в введенном пользователем числе.');
input_data(n);
output_data(schet(n,m));
end.
и

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
#include<stdio.h>
#include<conio.h>
int schet(int n, int m)
{
 if((n%10)==0)
  {
   m++;
   schet==m;
  }
 else
  {
   n=n%10;
   m++;
   schet==schet(n,m);
  }
return schet;
};
void main()
{
clrscr();
int n,m;
printf("Введите число: ");
scanf("%d", &n);
schet(n,m);
printf("Количество цифр в введенном вами числе: %d", schet);
getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.06.2010, 21:43
Ответы с готовыми решениями:

Найти количество цифр в числе
Дано целое число n (1&lt;n&lt;=10^9). Найти количество цифр.

Найти количество цифр в числе
Здравствуйте! Дано задание: &quot;Написать программу, которая вычисляет количество цифр во введенном пользователем числе и выводит результат...

Найти количество повторяющихся цифр в числе
Вводится натуральное число. Нужно вывести кол-во повторяющихся чисел в нем. Решить нужно 2-мя способами. С циклом постусловия, и...

11
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
17.06.2010, 22:00
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
int kol;
 
int schet(int n)
{
    if (n/10==0)
      return 1;
   else
     {
        while (n>0) 
         {
            
         n=n/10;
         kol+=1;
         
         }
         return kol;
     }     
 
};
 
int main()
{
    int n;
    printf("vvedite\n");
    scanf("%d",&n);
    printf("kol-vo tsifr %d\n",schet(n));
    return 0;
}
правда подпрограмму ввода не делал.
3
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
17.06.2010, 22:08
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

можно так
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
void main()
{
int a,b=0,fl=0;
 
system("echo введите число");
scanf("%d",&a);
 
do
{
a=(a/10);
if(a==0)
fl=1;
b++;
}
while(fl==0);
 
system("echo колличество цыфр в числе");
printf("%d",b);
 
getch();
}
1
0 / 0 / 1
Регистрация: 24.03.2010
Сообщений: 46
17.06.2010, 22:21  [ТС]
Artishok, программа работает, но почему то считает правильно через раз и максимальное количество цифр она считает 5

Добавлено через 5 минут
cibertronic, а в вашем варианте я наткнулся на неизвестный мне оператор system который я еще не изучил((
0
ЧакЭ одобряЭ
 Аватар для Artishok
285 / 284 / 86
Регистрация: 27.12.2009
Сообщений: 1,767
17.06.2010, 22:23
Цитата Сообщение от Zeleniy Посмотреть сообщение
и максимальное количество цифр она считает 5
у мну работает норм.на С-free делал
0
0 / 0 / 1
Регистрация: 24.03.2010
Сообщений: 46
17.06.2010, 22:31  [ТС]
а я работаю на BC++ 3.1
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
17.06.2010, 22:45
system это системная команда. для нее подключается stdlib.h. echo выводит текст написанный после него(причем русский), пустую стоку echo. с точкой. cls очищает экран, pause задерживает программу до нажатия клавиши, с соответствующим уведомлением. это ты и никогда не будешь изучать) ну может ток с паузой че и будет. хочешь знать больше возможностей этой функции почитай про CMD/BAT
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
17.06.2010, 22:46
Зачем столько сложностей?

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
#include <iostream>
 
int number_digits (int n)
{
    int count=0;
    while (n) {
        n/=10;
        count++; }
 
    return count;
}
 
int main ()
{
    int num;
    std::cout << "Enter number: ";
    std::cin >> num;
 
    std::cout << "Number of digits: " << number_digits (num);
    std::cout << std::endl;
 
    system ("pause");
    return 0;
}
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
17.06.2010, 22:48
Цитата Сообщение от Zeleniy Посмотреть сообщение
а я работаю на BC++ 3.1
попробуй этот
будет время еще MS Visual 6 выложу может и бильдеры 6 и 2007
0
0 / 0 / 1
Регистрация: 24.03.2010
Сообщений: 46
17.06.2010, 22:55  [ТС]
cibertronic спасибо за объяснение и совет, почему я программирую на 3.1 потому что нас в универе по нем учат и читают лекции про простой С.
Artishok, проблема нашлась просто у типа int короткий диапазон значений
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
17.06.2010, 22:58

Не по теме:

хм....у нас в универе исключительно на вижал....хотя у них все среды есть...ну или почти все))))



Добавлено через 1 минуту
на счет int чет я не подумал)))))))
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
17.06.2010, 23:32
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
long count_digit(long r, long i = 0);
int main(){
cout<<count_digit(1500)<<endl;
system("pause");
return 0;
}
long count_digit(long r, long i){
r/=10; i++;
if(r==0)return i;
return count_digit(r,i);
}
Вот мой рекурсивный вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2010, 23:32
Помогаю со студенческими работами здесь

Найти количество цифр в заданном числе
Добрый вечер, народ. Помогите решить задачку: Но есть одна проблема, самое главное в этой задаче не результат, а скорость!!! Не...

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

Найти в заданном числе количество чётных цифр и вывести их.
Дано пятизначное число. Надой найти в нём количество чётных чисел и вывести их. Использовать только int, if, else, scanf и printf

Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру
Я написал для нахождения суммы цифр. Но выдает ошибку process exited with value 0 и какие-то числа. Вот код: #include &lt;stdio.h&gt; ...

Рекурсия: посчитать количество цифр в числе
помогите решить задачу с помощью рекурсии, надо посчитать количество элементов в числе.Я сделал без рекурсии int chislo(); main() ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru