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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2017, 14:06   #1
Olaa
Пользователь
 
Регистрация: 28.11.2016
Сообщений: 18
Восклицание Функция

Не могу найти ошибку. Помогите пожалуйста.
Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количество его цифр и их сумму. Использовать функцию для вычисления количества цифр числа и их суммы.

Код:
#include "stdafx.h"
#include "locale.h"
#include "iostream"
#include "windows.h"
int Func(int a);
int _tmain(int argc, _TCHAR* argv[])
{	setlocale (0,"");
int n, p, sum, number;
printf("n=");
scanf("%d",&n);
p=Func(n);
printf("%number\n",p);
printf("%sum\n",p);
system("pause");
return 0;
}
int Func(int n)
{	int sum, number;
{
do
{
number++;
}
while (n /= 10);
return number;
}
{
do
{
sum+=n%10;
}
while (n/=10);
return sum;
}
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 04.04.2017 в 14:17.
Olaa вне форума Ответить с цитированием
Старый 04.04.2017, 14:18   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

какой ужас!
кто Вас учил так форматировать исходный код?!!!!

вот так разве выглядит не лучше?!
Код:
include "stdafx.h"#
include "locale.h"#
include "iostream"#
include "windows.h"
int Func(int a);
int _tmain(int argc, _TCHAR * argv[]) {
  setlocale(0, "");
  int n, p, sum, number;
  printf("n=");
  scanf("%d", & n);
  p = Func(n);
  printf("%number\n", p);
  printf("%sum\n", p);
  system("pause");
  return 0;
}
int Func(int n) {
  int sum, number; {
    do {
      number++;
    }
    while (n /= 10);
    return number;
  } {
    do {
      sum += n % 10;
    }
    while (n /= 10);
    return sum;
  }
}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2017, 14:23   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и фунция ваша некорректно написана. в принципе.
нельзя в переменную int вернуть два значения!
Цитата:
Код:
  p = Func(n);
  printf("%number\n", p);
  printf("%sum\n", p);
Вас не смутило, что и сумму и число цифр Вы получаете в одной переменной?!
Разумеется, это неверно.

я уже молчу про такие "мелочи", как отсутствие иницилизации переменных!
прежде, чем сделать number++ нужно ОБЯЗАТЕЛЬНО предварительно что-то занести в переменную перед циклом (в данном случае ноль: number = 0 )
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция Palin4ik Общие вопросы C/C++ 1 30.05.2013 15:21
Функция Seferus Общие вопросы C/C++ 3 23.09.2010 02:08
Функция Kloun1 Паскаль, Turbo Pascal, PascalABC.NET 5 24.01.2009 19:56
Функция в VB asd48 Помощь студентам 1 25.12.2008 23:29
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50