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

Zadanie wskaźniki

Object Storage Arubacloud
0 głosów
414 wizyt
pytanie zadane 18 października 2020 w C i C++ przez karateka2001 Nowicjusz (180 p.)

Witam, mam problem z poniższym zadaniem:

Napisz funkcję ZerujWieksze typu void, której parametrami są wskaźnik do zmiennej typu int (wskaźnik do pierwszego elementu tablicy), wskaźnik do zmiennej typu int (adres ostatniego elementu tablicy) oraz zmienna typu int. Funkcja ma za zadanie wyzerować te elementy tablicy, które są większe od wartości podanej jako trzeci parametr.

Zrobiłem coś takiego:

#include<iostream>

using namespace std;

void zerujWieksze(int *start,int *koniec,int liczba)
{

    for(;start<=koniec;start++)
    {
        if(*start>liczba)
        {
            *start=0;
        }
    }

    for(int i=0;i<9;i++)
    {
        cout<<*start<<'\n';
        start++;
    }
}

int main()
{
    int tab[10]={1,4,6,7,2,0,10,34,21,11};


    int n;
    cin>>n;

    zerujWieksze(&tab[0],&tab[9],n);

    return 0;
}

Myślę,że problem leży w pierwszej pętli for, tylko nie mam pojęcia, jak go rozwiązać.

komentarz 18 października 2020 przez adrian17 Ekspert (345,160 p.)
A... po co ta druga pętla?

Pierwsza jest sensowna, ale drugą chyba tak trochę na ślepo dodałeś.
komentarz 18 października 2020 przez karateka2001 Nowicjusz (180 p.)
Druga pętla jest do wypisania wartości po ew. zmianach.

1 odpowiedź

+1 głos
odpowiedź 18 października 2020 przez adrian17 Ekspert (345,160 p.)

Druga pętla jest do wypisania wartości po ew. zmianach.

Ale

Funkcja ma za zadanie wyzerować te elementy tablicy, które są większe od wartości podanej jako trzeci parametr.

Jak chcesz testować czy funkcja działa poprawnie, to rób to po wywołaniu funkcji, a nie w jej środku.

W każdym razie błąd się bierze stąd, że:

for(;start<=koniec;start++)

W pierwszej pętli incrementujesz `start`...

        cout<<*start<<'\n';
        start++;

Ale w drugiej ponownie używasz `start`, tak, jakby wskazywał na początek.

1
komentarz 18 października 2020 przez karateka2001 Nowicjusz (180 p.)
Ok, dziękuję za pomoc

Podobne pytania

0 głosów
1 odpowiedź 224 wizyt
pytanie zadane 8 grudnia 2022 w C i C++ przez Pysa6 Nowicjusz (220 p.)
0 głosów
1 odpowiedź 378 wizyt
pytanie zadane 30 listopada 2022 w C i C++ przez Pysa6 Nowicjusz (220 p.)
0 głosów
1 odpowiedź 273 wizyt
pytanie zadane 14 listopada 2019 w C i C++ przez juske00 Początkujący (370 p.)

92,615 zapytań

141,465 odpowiedzi

319,779 komentarzy

61,997 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...