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

Program nie działa poprawnie

VPS Starter Arubacloud
+1 głos
168 wizyt
pytanie zadane 16 stycznia 2021 w C i C++ przez qwerty2021 Nowicjusz (210 p.)

Hej 

Mam pytanie.

Mianowicie chodzi o o zadanie takie:

 i mam zrobione coś takiego już:

#include<stdio.h>
 #include <iostream>
 using namespace std;

 int main (){
     int n,i;
     cin>>n;
 int missingArray [i];
 cin>>missingArray[i];
 int numbers_mising = 0;

 for (int i=0 ; i < n; i++) {
     if (missingArray[i - numbers_mising] == i+1) {
        cout << -1 ;
     } else
     if (missingArray[i -  numbers_mising] != i+1) {
         cout << i+1 << " " << n+3;

     }
   }
 }

Jak są wszystkie liczby to pokazuje -1 a mam problem z tym szukaniem brakujących liczb. 

W jaki sposób mógłbym napisać ten program aby wyświetlało poprawnie te brakujące liczby?

 

komentarz 16 stycznia 2021 przez manjaro Nałogowiec (37,390 p.)
Przecież ten kod się nawet nie skompiluje...

W 8 linijce masz pierwszy błąd. Nie możesz deklarować tablicy o nieznanym rozmiarze. Musisz robić to dynamicznie albo skorzystać z wektora.
komentarz 16 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
Kod się skompiluje pod gcc, clang i bodajże icc (na ten moment nie wiem czy jakiekolwiek inne kompilatory wspierają VLA).
komentarz 16 stycznia 2021 przez manjaro Nałogowiec (37,390 p.)
edycja 16 stycznia 2021 przez manjaro
Aj sorki to nie błąd kompilacji tylko błąd z 8 linijki wywala segmentation fault.
komentarz 16 stycznia 2021 przez NewEraOfPeace Gaduła (4,790 p.)
-pedantic-errors?
VLA to rozszerzenie standardu, u mnie się kompiluje bez problemu. Gcc daje warningi, jeśli używa się rzeczy niestandardowych, ale na nie zezwala.

1 odpowiedź

0 głosów
odpowiedź 16 stycznia 2021 przez manjaro Nałogowiec (37,390 p.)

Tu masz przykładowy kod z uzyciem tablicy dynamicznej, przeanalizuj sobie jak działa taka tablica

#include <iostream>

int main() {
    int ile, liczba, licznik{0};
    std::cin >> ile;
    int * tablica = new int[ile+1]();

    do {
        std::cin >> liczba;
        if (liczba != -1) {
            tablica[liczba] = 1;
            licznik++;
        } 
    } while (liczba!=-1);

    for (int i=1; i<=ile; i++) {
        if (tablica[i] == 0) std::cout << i << " ";
    }

    if (licznik == ile) {
        std::cout << -1;
    }
    
    delete [] tablica;
}

 

komentarz 16 stycznia 2021 przez VBService Ekspert (251,210 p.)

wink

...
    do {
        std::cin >> liczba;
        if (liczba != -1 && liczba <= ile) {
...

 

komentarz 16 stycznia 2021 przez manjaro Nałogowiec (37,390 p.)
No ale nie mogą przecież występować te same numery w drugiej linii. To są numery zawodników a dwóch zawodników nie może mieć tych samych numerów przecież.Poza tym jak zgłosiło się ich 3 to mają numery startowe od 1 do 3 a nie 5

Podobne pytania

0 głosów
2 odpowiedzi 125 wizyt
0 głosów
0 odpowiedzi 177 wizyt
pytanie zadane 20 listopada 2019 w C i C++ przez PirchHD Obywatel (1,730 p.)
0 głosów
1 odpowiedź 211 wizyt
pytanie zadane 25 kwietnia 2018 w Java przez Forester Użytkownik (560 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 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!

...