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:
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;
}