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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
samuel
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 9
#1

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

12.04.2009, 18:36. Просмотров 749. Ответов 9
Метки нет (Все метки)

Код
#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++
Человек открыл счет в банке, вложив x руб. Через каждый месяц размер вклада увеличивается на p % от имеющейся суммы. Определить, за...

Расчет суммы вклада с процентами за определенный срок - C++
Хотел немного облегчить себе жизнь, но что-то не получилось) расчет суммы вклада с процентами за определенный срок. Использовал devc++....

Ошибка в задаче - C++
Заданы моменты начала и конца некоторого промежудка времени в часах минутах и секундах ( в пределах одних суток) Найти продолжительность...

Засада на 3-ей Задаче - C++
Ребята очень надо на завтра лабку сдать помогите пожалуста :help:

Класс в задаче - C++
Доброго времени суток! Почему он не может принять эту программу и ругается со словами: &quot; r6010 abort has been called&quot;. У меня проблема там,...

комметарии к задаче - C++
мне помогли решить задачу, но нужно еще дописать комментарии. Кое-где я уже написала их, но как писать остальные не совсем понимаю....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
17473 / 5711 / 364
Регистрация: 30.03.2009
Сообщений: 15,683
Записей в блоге: 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
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 9
12.04.2009, 18:54  [ТС]     Функция в задаче с процентами. #3
Ну да так и есть.
Evg
Эксперт CАвтор FAQ
17473 / 5711 / 364
Регистрация: 30.03.2009
Сообщений: 15,683
Записей в блоге: 26
12.04.2009, 19:12     Функция в задаче с процентами. #4
Цитата Сообщение от samuel Посмотреть сообщение
Ну да так и есть.
Что так и есть?
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
Эксперт CАвтор FAQ
17473 / 5711 / 364
Регистрация: 30.03.2009
Сообщений: 15,683
Записей в блоге: 26
12.04.2009, 22:41     Функция в задаче с процентами. #6
Цитата Сообщение от Return Посмотреть сообщение
Только зачем вообще возвращать? Смысл? Сделай войд-функцию, а в ней через
else printf ("Error\nInvalid value");
Человек только учится и на данном этапе оптимальность написания данного места его, судя по всему, пока не волнует
samuel
0 / 0 / 0
Регистрация: 25.03.2009
Сообщений: 9
14.04.2009, 19:36  [ТС]     Функция в задаче с процентами. #7
Вот именно что только учусь и на функции запнулся...
Return
2 / 2 / 0
Регистрация: 12.04.2009
Сообщений: 11
14.04.2009, 19:43     Функция в задаче с процентами. #8
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++
Подскажите где ошибка (не выводит второй prosmotr): #include &lt;iostream&gt; using namespace std; struct spisok { char file;...

Написать таймер к задаче - C++
Ребят помогите написать таймер к этой задаче: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; ...

Одна ошибка в задаче - C++
Задача: Дан текстовый файл. Переписать его текст в новый файл таким образом, чтобы каждое предложение начиналось с новой строки и между...

Общее представление о задаче - C++
Задание такого: Программа для заполнения, поиска информации о группах Факультета: Название группы, название специальности, год набора,...


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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17473 / 5711 / 364
Регистрация: 30.03.2009
Сообщений: 15,683
Записей в блоге: 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     Функция в задаче с процентами.
Ответ Создать тему
Опции темы

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