Problem z obliczniem procentu

0

Witam jest to mój pierwszy post na tym forum, pisze ponieważ ostatnim czasem zacząłem interesować się programowaniem w c++, korzystając z http://cpp.jcom.pl/lekcja3.php napotkałem się na problem z stworzeniem programu obliczający procent danej liczby, problem polega na tym ze gdy np chce obliczyc 50% ze 100 wychodzi mi 49 z 1000 jest tak samo 499. kod programu

#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
	int a, b, wynik;// a liczba b procent 
	const float c=0.01;
	cout<<"Oblicz procent,podaj liczbe"<<endl;
	cin>>a;
	cout<<"podaj procent"<<endl;
	cin>>b;
	wynik=c*b*a;
	cout<<"procent wynosi "<<wynik<<"";
	return 0;
}
1

1.Po co dołączyłeś conio.h?
2.Istnieje coś takiego, jak niedokładność obliczeń zmiennoprzecinkowych - dla przykładu tutaj jest już poprawny wynik: http://ideone.com/BtYUeJ

1
#include <iostream>
 
using namespace std;
 
int main()
{
        int liczba;
        double procent;
        cout<<"Oblicz procent,podaj liczbe"<<endl;
        cin>>liczba;
        cout<<"podaj procent"<<endl;
        cin>>procent;
        cout<<"procent wynosi "<<procent / 100 * liczba;
        return 0;
}
1

Może o to ci chodzi:

#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
  {
   double liczba,procent;
   cout<<"Oblicz procent, podaj liczbe: ";
   cin>>liczba;
   cout<<"podaj procent: ";
   cin>>procent;
   cout.setf(ios::fixed);
   cout<<"procent wynosi: "<<setprecision(2)<<(0.01*procent*liczba)<<endl;
   return 0;
  }
0

dziękuje za odpowiedzi z poprawionym kodem, jednak najbardziej użyteczna wydaje odpowiedź patryka27, ucze się programowania dopiero i idąc tokiem postępowania tamtej lekcji chciałem dowiedzieć się co zrobiłem źle że niedziała mi program, więc wyjaśnione "niedokładność obliczeń zmiennoprzecinkowych".

1 użytkowników online, w tym zalogowanych: 0, gości: 1