Informatică, întrebare adresată de koalaroz, 9 ani în urmă

C++ clasa 11 multumesc​

Anexe:

boiustef: intervalul pentru n este [2; 10^9] ? rau se vede in imahine...
koalaroz: da
boiustef: ai testat primul cod? merge bine? eu mă ut la el şi nicicum nu+l înţeleg..
dacă ai făcut codul, te rog să pui link la el de pe pastebin.com să-l cercetez şi eu, poate îl înţeleg.. :))))
koalaroz: nu, nu l-am testat inca, m-ia răspuns un baiat inainte și acel cod merge bine.. :)) corecteazăte cu celălalt răspuns
boiustef: celălalt răspuns e al meu :)) şi el merge bine... vorbeam de al lui Costin
koalaroz: al lui Costin merge bine
koalaroz: :)
boiustef: fb, mâine ăş voi cerceta.. noapte bună
koalaroz: noapte buna

Răspunsuri la întrebare

Răspuns de costin156
1

Salut! Gata am făcut-o în C++, sper ca o de folos!

Anexe:
Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream fin("numere.in");

int n, num, i;

int main()

{

   fin >> n;

   int exista=0, v[n+1]={0};

   while (fin >> num)

   {

       if (num<=n) { v[num]=1; exista=1;}

   }

   if (exista==0) cout << "Nu exista";

   else

   {

       for (num=1; num<=n; ++num)

       {

           if (v[num]==0) cout << num << " ";

       }

   }

}

Explicație:

1. vector caracteristic în care din start iniţial punem zerouri,

2. citim datele din fişier şi dacă măcar odată gasim un număr din intervalul [1,n], variabilei exista îi dăm 1

3. Dacă exista=1 afişem din vectorul caracteristic num, pentru care v[num]=0, adică num nu a fost găsit. Afişarea se face în creştere

Alte întrebări interesante