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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.06.2010, 02:46   #1
Zelenyi
 
Регистрация: 24.05.2010
Сообщений: 9
По умолчанию Количество цифр в числе

Уважаемые программисты подскажите как исправить ошибки в поей программе. она должна считать количество цифр заданного числа
Код:
#include<stdio.h>
#include<conio.h>
int schet(int n, int m)
{
 if((n%10)==0)
  {
   schet=1;
  }
 else
  {
   n=n/10;
   schet++;
  }
return schet;
};
void main()
{

int n,m;
printf("Vvedite chislo: ");
scanf("%d", &n);
schet(n,m);
printf("Kolichestvo cifr v chisle: %d", schet);
getch();
}
Zelenyi вне форума
Старый 18.06.2010, 02:55   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

хм, много ошибок. как вариант:
Код:
#include <stdio.h>
#include <conio.h>

int schet(int n)
{
    int count = 1;
    
    while ( n = n / 10 )
        count++;

    return count;
}

int main()
{
    int n;
    printf ("Vvedite chislo: ");
    scanf ("%d", &n);
    printf ("Kolichestvo cifr v chisle: %d", schet (n));
    getch ();
    return 0;
}
netrino вне форума
Старый 18.06.2010, 02:56   #3
Zelenyi
 
Регистрация: 24.05.2010
Сообщений: 9
По умолчанию

я понимаю ошибок много просто надо написать именно при помощи рекуксии

и мне еще кажется надо у n тип поменять, а то у типа int маленький диапазон значений

Последний раз редактировалось Stilet; 18.06.2010 в 08:27.
Zelenyi вне форума
Старый 18.06.2010, 03:01   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Zelenyi Посмотреть сообщение
я понимаю ошибок много просто надо написать именно при помощи рекуксии
а, ну так с этого надо было начинать.
Код:
int schet (int n)
{
	return n ? 1 + schet (n/10) : 0;
}
Цитата:
и мне еще кажется надо у n тип поменять, а то у типа int маленький диапазон значений
ммм, алгоритм от этого не поменяется, диапазон значений не принципиален
netrino вне форума
Старый 18.06.2010, 03:06   #5
Zelenyi
 
Регистрация: 24.05.2010
Сообщений: 9
По умолчанию

А нельзя объяснить поподробней про строчку
return n ? 1 + schet (n/10) : 0; ????
Zelenyi вне форума
Старый 18.06.2010, 03:10   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Zelenyi Посмотреть сообщение
А нельзя объяснить поподробней про строчку
return n ? 1 + schet (n/10) : 0; ????
? : - это условный оператор, сокращенная форма if-else. То что я написал можно переписать так:
Код:
int schet (int n)
{
    if (n != 0)
        return 1 + schet (n/10);
    else
        return 0;
}
netrino вне форума
Старый 18.06.2010, 03:14   #7
Zelenyi
 
Регистрация: 24.05.2010
Сообщений: 9
По умолчанию

ого буду теперь знать но почему то все время выводит в ответ 15
Zelenyi вне форума
Старый 18.06.2010, 03:20   #8
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Zelenyi Посмотреть сообщение
ого буду теперь знать но почему то все время выводит в ответ 15
у меня всё нормально..
Изображения
Тип файла: jpg schet.jpg (25.7 Кб, 187 просмотров)
netrino вне форума
Старый 18.06.2010, 03:24   #9
Zelenyi
 
Регистрация: 24.05.2010
Сообщений: 9
По умолчанию

Все нашел ошибку при выведении ответа указал название функции без параметров)))
Zelenyi вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сколько одинаковых цифр в числе Banderas123 Помощь студентам 16 08.12.2009 06:31
как в четырехзначном числе поставить через заданное количество цифр пробел KNatalia Microsoft Office Excel 4 18.08.2009 20:28
Найти количество цифр в числе immor Помощь студентам 4 14.02.2009 22:30
Перестановка цифр в целом числе. Паскаль. Cheetah Помощь студентам 5 16.10.2008 21:07