Jestem mocno początkujący (dopiero się uczę) i właśnie staram się zrobić program, który w wybranej wagi i wybranej jednostki europejskiej wylicza wagę w wybranej jednostce amerykańskiej. Na początek chciałem poprosić użytkownika o liczbę i kliknięcie odpowiedniego do punktu w menu klawisza, a następnie przeliczyć według podanych danych liczbę z dowolnej jednostki na gram.Chciałem to zrobić przy pomocy własnej funkcji, a wewnątrz niej umieścić switcha powiązanego z menu. Domyślam się, że da się to prawdopodobnie zrobić łatwiej, ale chodzi mi tylko o naukę. Oto kod:
#include <iostream>
#include <windows.h>
using namespace std;
float masa;char jednostka;
float masa_w(float m);
int main()
{
for(;;)
{
cout << "Wpisz liczbę: ";
cin >> masa;
cout<<endl;
cout<<"Wybierz jednostke"<<endl;
cout<<endl;
cout<<"1.mg"<<endl;
cout<<"2.g"<<endl;
cout<<"3.dag"<<endl;
cout<<"4.kg"<<endl;
cout<<"5.tona"<<endl;
masa_w(masa);
cout<<masa_w;
}
}
float masa_w(float m)
{
switch (jednostka)
{
case'1':return m*1000;
case'2':return m ;
case'3':return m*0.1;
case'4':return m*0.001;
case'5':return m*0.000001;
}
return 0;
}
Mniej więcej ogarnąłem aplikację,jednak dodaje ona 1 na końcu wyniku. Domyśla się ktoś jaki jest powód?
#include <iostream>
#include <stdio.h>
#include <cstdlib>
#include <conio.h>
using namespace std;
float masa;char jednostka;char jednostka2;
float masa_w(float m);
int main()
{
for(;;)
{
cout << "Wpisz liczbê: ";
cin >> masa;
cout<<endl;
cout<<"Wybierz jednostke"<<endl;
cout<<endl;
cout<<"1.mg"<<endl;
cout<<"2.g"<<endl;
cout<<"3.dag"<<endl;
cout<<"4.kg"<<endl;
cout<<"5.tona"<<endl;
jednostka=getch();
masa_w(masa);
cout<<masa_w<<endl;
} return 0;
}
float masa_w(float m)
{
switch (jednostka)
{
case'1':cout<< m*1000; break;
case'2':cout<< m; break;
case'3':cout<< m*0.1; break;
case'4':cout<< m*0.001; break;
case'5':cout<< m*0.000001; break;
}
return 0;
}