Informatică, întrebare adresată de Alemaria798, 8 ani în urmă

Cum pot sa aflu pozitia unui numar , daca de ex se zice ca se citeste de la tastatura o valoare n si apoi n numere naturale .....

Răspunsuri la întrebare

Răspuns de adrianalitcanu2018
2

Răspuns:

Mai jos se gaseste codul C++, iar dupaa fiecare instructiune considerata importanta, am adaugat un comentariu dupa simbolul // unde am explicat pas cu pas ce se intampla.

Explicație:

#include <iostream>

using namespace std;

int main()

{

   unsigned int n, v[100]; //declaram de tip unsigned int (intregi fara semn) n (numarul de numere naturale ale tabloului) v[100] (un tablou unidimensional, numit vector sau sir de numere)

   cout<<"n = ";

   cin>>n; //citim n

   for(int i=1;i<=n;i++)

   {

       cout<<"v["<<i<<"] = ";

       cin>>v[i]; //citim fiecare componenta din vector

   }

   unsigned int x; //declaram de tip unsigned int (intregi fara semn) x (numarul pe care il cautam in vector)

   cout<<"x = ";

   cin>>x; //citim x

   unsigned int k; //declaram de tip unsigned int (intregi fara semn) k (numarul de repetitii ale valorii x in vector)

   k=0; //initializam k=0 deoarece presupunem ca x nu se afla in vector

   for(int i=1;i<=n;i++) //parcurgem vectorul

       if(x == v[i]) //testam pentru fiecare componenta din vector daca este sau nu egala cu x

           k++; //daca regasim ca x este de fapt componenta cautata, atunci il marim cu 1 pe k

   if(k==0) //verificam daca k a ramas 0 si in caz afirmativ scriem mesajul de mai jos

       cout<<x<<" nu se afla in sirul de numere";

   else //in caz negativ parcurgem algoritmul de mai jos

   {

       cout<<x<<" se afla pe pozitia/pozitiile ";

       for(int i=1;i<=n;i++) //parcurgem iar vectorul

           if(x == v[i]) //testam care este/sunt componenta/componentele egale cu x

               cout<<i<<" "; //scriem i corespunzator, i fiind pozitia elementului v[i] din vector

   }

   return 0;

}

Alte întrebări interesante