• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Prosty kalkulator ze wskaznikami

VPS Starter Arubacloud
0 głosów
524 wizyt
pytanie zadane 19 grudnia 2016 w C i C++ przez silnyjakzubr Nowicjusz (240 p.)
otagowane ponownie 12 lutego 2017 przez silnyjakzubr

Witam.

Próbowałem zrobić prosty kalkulator ze wskaźnikami, ale jeszcze nie za bardzo ogarnąłem temat. Program się włącza ale nie przelicza wszystkiego jak powinien. Prawdopodbnie błędy są w voidach ale nie potrafię ich poprawić :(

#include <iostream>
using namespace std;

void dodawanie(int *tab, int &ile){
    float suma=0;
    for(int i=0;i<ile;i++)
    {
        suma+=*tab;
        tab++;
    }
    cout<<"Suma wynosi: "<<suma;
}
void odejmowanie(int *tab, int &ile){
    float odejm=0;
    for(int i=0;i<ile;i++)
    {
        odejm=odejm-*tab;
        tab++;
    }
    cout<<"Odejmowanie wynosi: "<<odejm;
}
void mnozenie(int *tab, int &ile){
    float mnoz=0;
    for(int i=0;i<ile;i++)
    {
        mnoz=mnoz * *tab;
        tab++;
    }
    cout<<"Mnozenie wynosi: "<<mnoz;
}
void dzielenie(int *tab, int &ile){
    float dziel=0;
    for(int i=0;i<ile;i++)
    {
        dziel=dziel / *tab;
        tab++;
    }
    cout<<"Dzielenie wynosi: "<<dziel;
}

int main()
{
    int ile,wybor;
    cout<<"------------------"<<endl;
    cout<<"------------------"<<endl;
    cout<<"-------MENU-------"<<endl;
    cout<<"---1.Dodawanie----"<<endl;
    cout<<"---2.Odejmowanie--"<<endl;
    cout<<"---3.Mnozenie-----"<<endl;
    cout<<"---4.Dzielenie----"<<endl;
    cout<<"------------------"<<endl;
    cout<<"------------------"<<endl;

    cout<<"Podaj dowolna ilosc liczb: ";
    cin>>ile;

    int *tablica;
    tablica=new int [ile];

    for(int i=0;i<ile;i++)
    {
        cout<<"Podaj liczbe nr "<<i+1<<": ";
        cin>>tablica[i];
    }

    cout<<"Podaj numer operacji, ktora chcesz wykonac: ";
    cin>>wybor;

    switch(wybor){
        case 1:
            dodawanie(tablica,ile);
        break;
        case 2:
            odejmowanie(tablica,ile);
        break;
         case 3:
            mnozenie(tablica,ile);
        break;
         case 4:
            dzielenie(tablica,ile);
        break;
         default:
             return wybor;
        break;
        }

    delete [] tablica;
    return 0;
}

 

komentarz zamknięcia: Do usuniecia temat

2 odpowiedzi

0 głosów
odpowiedź 19 grudnia 2016 przez Kasztan Dyskutant (8,080 p.)
Ale to bez sensu, skąd czerpałeś wiedzę na temat wskaźników i funkcji  ?
komentarz 19 grudnia 2016 przez Kasztan Dyskutant (8,080 p.)
edycja 19 grudnia 2016 przez Kasztan
Wskazówka

1. suma+=tab[i];

2. po co tu referencja int &ile, int ile

3. jesli juz uzywasz += to uzyj -=, *= analogicznie
komentarz 19 grudnia 2016 przez Kasztan Dyskutant (8,080 p.)
int *tablica;

tablica=new int [ile];

int *tablica = new int [ile];
0 głosów
odpowiedź 19 grudnia 2016 przez Adii Użytkownik (960 p.)
Cześć,

Odejmowanie działa źle, bo ustawiasz wartość "float odejm = 0", innymi słowy od zera odejmujesz kolejne liczby z tablicy chyba, że to ja coś źle zrozumiałem. W mnożeniu jest to samo ustawiasz "float mnoz = 0" , a następnie robisz "mnoz = mnoz * *tab", innymi słowy mnożysz przez 0, zamień "float mnoz = 0" na "float mnoz = 1". Analogicznie dzielnie.

Nie jestem pewny czy taki chciałeś uzyskać efekt, więc może do "float odej, mnoz, dziel" przydziel pierwszą wartość z tablicy? Np. "mnoz = *tab;

Podobne pytania

0 głosów
2 odpowiedzi 205 wizyt
0 głosów
1 odpowiedź 565 wizyt
pytanie zadane 25 kwietnia 2018 w Inne języki przez Piotrek32 Obywatel (1,610 p.)
0 głosów
1 odpowiedź 220 wizyt
pytanie zadane 18 maja 2017 w C i C++ przez kvbq Obywatel (1,490 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...