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

Funkcje działają oddzielnie, ale nie działają w w jednym programie

+1 głos
89 wizyt
pytanie zadane 26 maja w C i C++ przez Domika Nowicjusz (200 p.)

Hej, mam do zrobienia kilka zadań w jednym programie i gdzieś robię błąd, którego nie widzę, bo w oddzielnych programach funkcje działają, ale jak wrzucę je do jednego programu to chodzi tylko zadanie 2.

#include <iostream>
#include <iomanip>
#include<stdio.h>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <limits>

using namespace std;

void wprowadzLiczba(int[], int);
int suma_ed(int[], int);
double srednia_ed(int[], int);
void getLiczbaA(int [], int size);
int getLowest(int[], int size, int&);

// ---------------------------------- ZADANIE 1 ----------------------------------
void wprowadzLiczba(int tab1[], int wymiar)
{
    int indeks;
    for (indeks=0; indeks <= wymiar-1; indeks++)
    {
        cout << "Podaj liczbe: " << (indeks+1) << ": ";
        cin >> tab1[indeks];
    }
}

int suma_ed(int tab1[], int wymiar)
{
    int suma=0;
    for (int number=0; number<=wymiar; number ++)
    if(tab1[number]>0)
    suma += tab1[number];
    return suma;
}

double srednia_ed(int tab1[], int wymiar)
{
     int suma; double srednia;
     for (int number=0; number<=wymiar; number ++)
     if(tab1[number]<0)
{
    suma+=tab1[number];
    srednia = (double)suma/tab1[number];
}
return srednia;
}
// ---------------------------------- ZADANIE 2 ----------------------------------
void getLiczbaA(int numbers[], int size)
{
    int index;
    for (index=0; index <= size-1; index++)
    {
        cout << "Podaj liczbe: " << (index+1) << ": ";
        cin >> numbers[index];
    }
}
int getLowest(int numbers[], int size, int& ile_razy)
{
    int i;
    int lowest;
    lowest = numbers[0];
    ile_razy=0;
    for (int num=1; num<size; num ++)
{
        if(numbers[num]<lowest)
             lowest = numbers[num];
}
          for (int num=0; num<size; num ++)
{
		     if(numbers[num]==lowest)

			   ile_razy++;
}
     return lowest;
}


// ---------------------------------- Pola wyboru----------------------------------
int main()
{
    int zadanie;
    int wymiar = 10;
    int tabY[wymiar];
    int suma;
    double srednia;
    int size =10;
    int tabA[size];
    int ile;
    int& ile_razy = ile;

    while (true) {
    cout << "\nWybierz numer zadania:" << endl;
    cout << "1) Zadanie 3.1" << endl;

    cout << "0) Wyjscie" << endl;
    cin >> zadanie;

        switch(zadanie) {
            case 1: {
            cout << fixed << showpoint << setprecision(2);
            wprowadzLiczba(tabY, wymiar);
            cout << "Suma elementow wiekszych od zera: " << suma_ed(tabY, wymiar) << endl;
            cout << "Srednia elementow mniejsza od zera: " << srednia_ed(tabY, wymiar) << endl;
            }; break;
            case 2: {
            cout << fixed << showpoint << setprecision(2);
            getLiczbaA(tabA, size);
            cout << "Najmniejszy element to: " <<getLowest(tabA, size, ile_razy);
            cout << endl;
            cout << "Element minimalny wystapil w tablicy: " << ile_razy << " razy";
          } break;
            //case 5: zad5(); break;
            case 0: return 0; break;
            default:
            cout << "Nie ma takiego cwiczenia!" << endl;
        }

    cout << "\nWcisnij enter aby kontynuowac" << endl;
    cin.sync();
    cin.get();

}
    }

 

3 odpowiedzi

+2 głosów
odpowiedź 26 maja przez j23 Mędrzec (166,040 p.)
  • Linie 31 i 40: błąd w warunku number <= wymiar powoduje, że wychodzisz poza tablicę. Powinno być number < wymiar.
  • Linia 52: nie można po prostu index < size zamiast wydziwiać z index <= size-1?
  • Linie 83 i 87: zmienne powinny być const.
+1 głos
odpowiedź 26 maja przez Ksardias1 Nowicjusz (160 p.)
Wychodzisz poza zakres tablicy (40 linijka), następnym razem w podobnych przypadkach dokładaj do kodu za sumowaniem cout<<suma<<endl; pomoże Ci to w przyszłości samemu znajdywać błędy
0 głosów
odpowiedź 26 maja przez Domika Nowicjusz (200 p.)
Dziękuję Wam bardzo za pomoc. Teraz wszystko chodzi tak, jak trzeba.

Podobne pytania

0 głosów
2 odpowiedzi 75 wizyt
pytanie zadane 17 kwietnia 2016 w C i C++ przez Rappa2 Obywatel (1,540 p.)
0 głosów
0 odpowiedzi 149 wizyt
0 głosów
1 odpowiedź 68 wizyt
pytanie zadane 11 lutego w C i C++ przez informatykod7bolesci Nowicjusz (180 p.)
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

85,728 zapytań

134,512 odpowiedzi

298,568 komentarzy

56,635 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...