Форум программистов, компьютерный форум CyberForum.ru

Функция в задаче с процентами. - C++

Восстановить пароль Регистрация
 
samuel
 Аватар для samuel
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 9
12.04.2009, 18:36     Функция в задаче с процентами. #1
Код
#include <stdio.h>
#include <conio.h>
#include <math.h>
int percent (int x, int y)
{
float c;

if (x>0&&y>0)
{
c=x/100*y;
printf ("The percent from the entered number is equal: %.2f",c);
return (1);
}
else
return (-1);
}

void main ()
{
int a,b;
clrscr ();
printf ("Enter values:\n");
scanf ("%i", &a);
printf ("Enter percent:\n");
scanf ("%i",&b);

if (percent (a,b)<0)
printf ("Error\nInvalid value");

getch();
}
Программа вычисляет процент. Она работает почти правильно. Пожалуйста помогите правильно поставить условие чтобы она высчитывала процент из отрицательного числа и вывод ответа сделать в функции mein, я как не пытался у меня нечего не получается.
Если можно на моем примере.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2009, 18:36     Функция в задаче с процентами.
Посмотрите здесь:

C++ Решение с процентами.
комметарии к задаче C++
Проблема в задаче,подскажите. C++
Crash в задаче с тимуса C++
C++ ошибка в задаче на палиндром
C++ Засада на 3-ей Задаче
Ошибка в задаче C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16933 / 5338 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
12.04.2009, 18:46     Функция в задаче с процентами. #2
1. Замечание общего характера
Посколькоу x и y - int'ы, то вместо
Код
c=x/100*y;
надо писать
Код
c=(float)x/100*y;
ибо говоря что она работает почти правильно - ты явно лукавишь - при x меньше 100 должно выдавать гарантированный ноль (независимо от y). К тому же при вызове percent надо параметры местами поменять

2. Например, 3 от 10 это 30%, а как ты себе математически представляешь ответ для чисел -3, 10 и 3, -10?
samuel
 Аватар для samuel
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 9
12.04.2009, 18:54  [ТС]     Функция в задаче с процентами. #3
Ну да так и есть.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16933 / 5338 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
12.04.2009, 19:12     Функция в задаче с процентами. #4
Цитата Сообщение от samuel Посмотреть сообщение
Ну да так и есть.
Что так и есть?
Return
 Аватар для Return
2 / 2 / 0
Регистрация: 12.04.2009
Сообщений: 11
12.04.2009, 22:01     Функция в задаче с процентами. #5
Ошибочка в самом определении функции
int percent (int x, int y)
Она ведь возвращает в любом случае инт, а нужен флоат.
float percent (int x, int y)
Только зачем вообще возвращать? Смысл? Сделай войд-функцию, а в ней через
else printf ("Error\nInvalid value");
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16933 / 5338 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
12.04.2009, 22:41     Функция в задаче с процентами. #6
Цитата Сообщение от Return Посмотреть сообщение
Только зачем вообще возвращать? Смысл? Сделай войд-функцию, а в ней через
else printf ("Error\nInvalid value");
Человек только учится и на данном этапе оптимальность написания данного места его, судя по всему, пока не волнует
samuel
 Аватар для samuel
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 9
14.04.2009, 19:36  [ТС]     Функция в задаче с процентами. #7
Вот именно что только учусь и на функции запнулся...
Return
 Аватар для Return
2 / 2 / 0
Регистрация: 12.04.2009
Сообщений: 11
14.04.2009, 19:43     Функция в задаче с процентами. #8
samuel, что непонятно? Спрашивай. Я кстати, сам только начал учить, так что будем вместе грызть гранит
samuel
 Аватар для samuel
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 9
14.04.2009, 20:33  [ТС]     Функция в задаче с процентами. #9
Подскажите плиз

Добавлено через 3 минуты 48 секунд
Код
#include <stdio.h>
#include <conio.h>
#include <math.h>

int percent (int y, float a, float b , float c)
{
if (y>0)
{
c=a*b/100;
return (1);
}
else
return (-1);
}

void main ()
{
float a,b,c;
clrscr ();
printf ("Enter values:\n");
scanf ("%f", &a);
printf ("Enter percent:\n");
scanf ("%f",&b);
if (percent (b,a,b,c)<0)
{
printf ("Error\nInvalid value");
}
else;
printf ("The percent from the entered number is equal: %.2f", c);
getch();
}
Изменил все как сказали. Не работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2009, 22:21     Функция в задаче с процентами.
Еще ссылки по теме:

C++ Расчет суммы вклада с процентами за определенный срок
Одна ошибка в задаче C++
Найти ошибку в задаче C++
C++ Класс в задаче
ошибка в задаче с классом C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16933 / 5338 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
14.04.2009, 22:21     Функция в задаче с процентами. #10
> Изменил все как сказали. Не работает.

Ты c подаёшь вовнутрь функции, а оно наоборот должно возращаться из функции. Функция может возвращать не только int но и любой другой тип. Т.е. параметрами в функцию ты подаёшь два числа a и b (которые в первом примере у тебя были целлые, а во втором float'ы), а функция тебе возвращает float величину, показывающую, сколько процентов число a составляет от числа b

Пишу одну только функцию percent, причём первоначальный случай (числа целые). А ты уже подумай, что с ней дальше делать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Функция подсчёта процента
// Если числа x и y положительные, то функция возвращает величину,
// говорящую сколько процентов составляет число x от числа y
// В противном случае возвращаем -1.0 (такое значение будет соответсвовать
// ошибке
float percent (int x, int y)
{
  float c;
 
  if (x>0 && y>0)
  {
    c = ((float)x / (float)y) * 100;
  } else
  {
    c = -1.0;
  }
 
  return c;
}
Yandex
Объявления
14.04.2009, 22:21     Функция в задаче с процентами.
Ответ Создать тему
Опции темы

Текущее время: 07:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru