Cześć,
Jestem totalnie początkujący i próbuję w ramach ćwiczenia zrobić prosty kalkulator jednostek w C++.
Na razie napisałem kod tylko do przeliczania jednostek długości i tylko milimetry, centymetry, metry i kilometry.
Do przeliczania używam dwuwymiarowej tablicy, do której wstawiłem dane na zasadzie 1mm=0,1cm, 1mm=0,001m, 1mm=0,000001km
Problem pojawia się kiedy program ma przeliczyć milimetry na kilometry - dzieli podana liczbę milimetrów przez 10, zamiast pomnożyć przez zmienna z tablicy 0.000001.
Jak wpisze na chama, żeby mnożył przez 0.000001 to działa normalnie, stąd wnioskuje, że problem jest z tablicą.
Jak to rozwiązać?
Poniżej kod:
#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <cstdlib>
#include <conio.h>
using namespace std;
char wybor;
float liczba;
float liczba2;
string jednostka;
string jednostka2;
int main()
{
cout << "Witaj w kalkulatorze jednostek" << endl;
cout << "------------------------------" << endl;
cout << "Jakie jednostki chcesz przeliczyc? Podaj cyfre." <<endl;
cout << "1. Jednostki dlugosci" << endl;
cout << "2. Jednostki masy" << endl;
cout << "3. Jednostki objetosci" << endl;
cout << "4. Jednostki powierzchni" << endl;
cin >> wybor ;
switch (wybor)
{
case '1':
{
setprecision(1000000);
long double przelicznik[3][3];
przelicznik[0][0]=1;
przelicznik[0][1]=0.1;
przelicznik[0][2]=0.001;
przelicznik[0][3]=0.000001;
przelicznik[1][0]=0.1;
przelicznik[1][1]=1;
przelicznik[1][2]=0.01;
przelicznik[1][3]=0.00001;
przelicznik[2][0]=1000;
przelicznik[2][1]=100;
przelicznik[2][2]=1;
przelicznik[2][3]=1000;
przelicznik[3][0]=1000000;
przelicznik[3][1]=100000;
przelicznik[3][2]=1000;
przelicznik[3][3]=1;
cout << "Podaj liczbe do przeliczenia i jej jednostke:" << endl;
cout << "Liczba: " << endl;
cin >> liczba;
cout << "Wybierz dostepna jednostke (wpisz nazwe): " << endl;
cout << "milimetry" << endl;
cout << "centrymetry" << endl;
cout << "metry" << endl;
cout << "kilometry" << endl;
cin >> jednostka;
cout << "Na jaka jednostke to przeliczyc (wpisz nazwe)?" << endl;
cout << "milimetry" << endl;
cout << "centrymetry" << endl;
cout << "metry" << endl;
cout << "kilometry" << endl;
cin >> jednostka2;
if (jednostka=="milimetry"&&(jednostka2=="centymetry"))
{
cout << liczba << " milimetrow = " << liczba*przelicznik[0][1];
cout << " centymetrow";
}
if ((jednostka=="milimetry")&&(jednostka2=="metry"))
{
cout << liczba << " milimetrow = " << liczba*przelicznik[0][2];
cout << " metrow";
}
if ((jednostka=="milimetry")&&(jednostka2=="kilometry"))
{
cout << liczba << " milimetrow = " << liczba*przelicznik[0][3];
cout << " kilometrow";
}
}
}
}
Z góry dzięki za pomoc!