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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2013, 17:27   #1
pyrozhok
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 10
Восклицание Нужна помощь по исходному коду

Дано натуральное число n (n <=1000). Определить, чему равна сумма его цифр S. Вычислить f(S), если
f(x)= (x-2)^2, при х четных
pyrozhok вне форума Ответить с цитированием
Старый 13.10.2013, 17:39   #2
pyrozhok
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 10
Восклицание Нужна помощь по исходному коду

Дано натуральное число n (n <=1000). Определить, чему равна сумма его цифр S. Вычислить f(S), если
f(x)= (x-2)^2, при х четных
f(x)= (2-x)^2 при х нечетных

Написал код, меня закидало ошибками (я новичок)
Можете подсказать, в чем проблема?
p.s. есть предположение, что накосячил с типом переменных.

Код:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
void main()
{setlocale (LC_ALL,"rus");
int o,n,f,c1,c2,c3,c4,s=0;
cout<<"Введите натуральное число n (n <=1000): ";
cin>>n;
o=n%2; //Находим остаток при делении на 2
//Находим цифры числа n
c1=n%10;
n=n/10;
c2=n%10;
n=n/10;
c3=n%10;
n=n/10;
c4=n%10;
s=c1+c2+c3+c4; //Находим сумму цифр числа n
cout<<"Сумма цифр числа равна "<<s;
if (n<0&&n>1000) {cout<<"Число не является натуральным";}		
if (n>=0&&n<=1000&&o==0) //Число n удовлетворяет условию,остаток при делении равен 0
{f=pow((s-2),2);
cout<<"Сумма числа четная"<<endl;
cout<<"Функция f(S)= "<<f;
}
else
{f=pow((2-s),2);
cout<<"Сумма числа нечетная"<<endl;
cout<<"Функция f(S)= "<<f;
}
getch();
}
Собственно, сам список ошибок:
Код:
1>  Обращение к "Debug\lab3_v21.unsuccessfulbuild".
1>ClCompile:
1>  var20.cpp
1>c:\users\sanek\documents\visual studio 2010\projects\lab3_v21\lab3_v21\var20.cpp(23): error C2668: pow: неоднозначный вызов перегруженной функции
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(583): может быть "long double pow(long double,int)"
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(535): или       "float pow(float,int)"
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(497): или       "double pow(double,int)"
1>          при попытке сопоставить список аргументов "(int, int)"
1>c:\users\sanek\documents\visual studio 2010\projects\lab3_v21\lab3_v21\var20.cpp(28): error C2668: pow: неоднозначный вызов перегруженной функции
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(583): может быть "long double pow(long double,int)"
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(535): или       "float pow(float,int)"
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(497): или       "double pow(double,int)"
1>          при попытке сопоставить список аргументов "(int, int)"
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.85
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

Последний раз редактировалось pyrozhok; 13.10.2013 в 18:35. Причина: Подправил код
pyrozhok вне форума Ответить с цитированием
Старый 13.10.2013, 18:24   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
o:=n%2;
Это не Си. В си нет оператора :=

Цитата:
сумма его цифр S
Это каким полушарием моска понимать?
I'm learning to live...

Последний раз редактировалось Stilet; 13.10.2013 в 21:14.
Stilet вне форума Ответить с цитированием
Старый 13.10.2013, 18:31   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это каким полушарием моска понимать?
видимо, S - переменная, хранящая сумму...
Igor95 вне форума Ответить с цитированием
Старый 13.10.2013, 18:31   #5
pyrozhok
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это не Си. В си нет оператора :=
Ой, точно, исправил на =
Но по прежнему ошибки.

Решил проблему: заменил операцию возведения в степень на f=(s-2)*(s-2); и на f=(2-s)*(2-s);

Последний раз редактировалось Stilet; 13.10.2013 в 21:06.
pyrozhok вне форума Ответить с цитированием
Старый 13.10.2013, 18:45   #6
pyrozhok
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это каким полушарием моска понимать?
Переменная s, которая хранит сумму цифр.
pyrozhok вне форума Ответить с цитированием
Старый 13.10.2013, 20:36   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ладно.
Цитата:
Дано натуральное число n (n <=1000). Определить, чему равна сумма его цифр S.
Код:
int n=0,s=0;
for(;n;n/=10) s+=n%10;
А это:
Цитата:
Вычислить f(S), если
f(x)= (x-2)^2, при х четных
Как понимать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2013, 20:41   #8
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
f(x)= (x-2)^2, при х четных
Код:
int x;
std::cin>>x;
std::cout<<pow(x-2,2);
наверное.

============

считаем только если x чётное

Код:
int x;
std::cin>>x;
if(x%2)
  std::cout<<pow(x-2,2);
else
  std::cout<<"i don't know";
библа math.h обычно решала любые траблы.
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Stilet; 13.10.2013 в 21:21.
Perchik71 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расположить слова строки в порядке, обратном исходному. ROBODEF Общие вопросы C/C++ 7 22.12.2012 21:34
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
Помогите описать программу по исходному коду rombler69 Помощь студентам 1 29.05.2009 21:02