Sunteți pe pagina 1din 8

1. Afişează elementele unei matrici care sunt poziţionate pe diagonala principală.

#include <iostream>
using namespace std;
int main(){
int v[100][100],n; //n pentru numarul de randuri si coloane ale tabloului
int i,j; //var contor pentru parcurgerea tabloului
cout<<"introduceti numarul de coloane si randuri\n";
cin>>n;
//citirea vectorului
for ( i = 0; i < n; i++ )
for ( j = 0; j < n; j++ )
{
cout<<"v["<<i<<","<<j<<"]=";
cin>>v[i][j];
}

// afisarea elementelor de pe diagonala principala


for ( i = 0; i < n; i++)
for ( j = 0; j < n; j++)
if (i==j) //indicii rand si coloana sunt egali pentru elementele de pe diagonala
principala
cout<<v[i][j]<<" ";
return 0;
}
2. Identifică cele mai mici trei numere impare ale unui vector.
// Online C++ compiler to run C++ program online
#include <iostream>
#include <limits.h>
using namespace std;
int main(){
int v[100],n; //n pentru numarul de componente ale tabloului
int min1,min2,min3; // primele 3 numere maxime
int i; //var contor pentru parcurgerea tabloului
cout<<"introduceti numarul de componente ale vectorului\n";
cout<<"n=";
cin>>n;
//citirea vectorului
for ( i = 0; i < n; i++ ){
cout<<"v["<<i<<"]=";
cin>>v[i];
}
//determinarea celor mai mici trei numere impare atribuind initial drept valori minime
valoarea maxima a tipului integer
min1=INT_MAX;
min2=INT_MAX;
min3=INT_MAX;
for ( i = 0; i <n; i++ ) {
if (v[i]%2==1)&&(v[i]<min1){
min3=min2;
min2=min1;
min1=v[i];
}
if ( (v[i]%2==1)&&(v[i]<min2)&&(v[i]!=min1)){
min3=min2;
min2=v[i];
}
if ((v[i]%2==1)&&(v[i]<min3)&&(v[i]!=min2)&&(v[i]!=min1))
min3=v[i];
}
cout<<"min1= "<<min1<<endl;
cout<<"min2= "<<min2<<endl;
cout<<"min3= "<<min3<<endl;
return 0;
}
3. Află care două elemente adunate ale unui vector formează numărul introdus de la
tastatură. Afişează rezultatul fără permutaţii.
// Online C++ compiler to run C++ program online
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{
int v[100], mat_solutii[100][100],n,count,numar; //n pentru numarul de componente ale
tabloului
int i,j,i1; //var contor pentru parcurgerea tabloului ste o pereche de numere cu suma
=numar
bool gasit;//daca deja e
cout<<"introduceti numarul de componente ale vectorului\n";
cout<<"n=";
cin>>n;
cout<<"introduceti numarul ";
cin>>numar;
//citirea vectorului
for ( i = 0; i < n; i++ ){
cout<<"v["<<i<<"]=";
cin>>v[i];
}
//determinarea numerelor ce satisfac conditia si pastrarea acestora intr-o matrice cu 2
randuri si nr coloane
count=0;//var in care pastram cate perechi de numere ce satisfac conditia s-au gasit
gasit=false;
for ( i =0; i<n; i++ )
for ( j = i+1; j <n; j++ ) {
if ((v[i]+v[j]==numar) && (count==0))
{
count++;
mat_solutii[1][count]=v[i]; //cout<<mat_solutii[1][count]<<endl;
mat_solutii[2][count]=v[j]; //cout<<mat_solutii[2][count]<<endl;
}
if ((v[i]+v[j]==numar)&& (count!=0)) //daca suma elementelor este egala cu n si
deja mai avem astfel de solutii pentru a vedea daca exista asa solutie in caz contrar
adaugam in matrice solutia gasita
{
for (i1=1; i1<=count;i1++)
if (((mat_solutii[1][i1]==v[i])&&(mat_solutii[2][i1]==v[j])) || ((mat_solutii[1]
[i1]==v[j])&&(mat_solutii[2][i1]==v[i])))
gasit=true;
if (gasit==false)// daca nu exista astfel de solutie in matricea rezultat adaugam
noua pereche de numere
{
count++; //cout <<count<<endl;
mat_solutii[1][count]=v[i];//cout<<mat_solutii[1][count]<<endl;
mat_solutii[2][count]=v[j];//cout<<mat_solutii[2][count]<<endl;
}
}
gasit=false;
}
if (count==0)
cout<<"nu sunt astfel de perechi de numere";
else {
cout<<"sunt "<<count<<" perechi de numere ce satisfac conditia"<<endl;
for (i=1;i<=count;i++)
cout<<mat_solutii[1][i]<<","<<mat_solutii[2][i]<<endl;
}
return 0;
}

4. Determină intersecţia a doi vectori, într-un alt vector


#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int n, n1, i, j, x, aux, v[1000], v1[1000];
int main () {
//var numere de tip multime
set<int> numere;
//citirea primului vector
cout <<"n=";
cin>>n;
for (i=1;i<=n;i++)
cin>>v[i];
//citirea vectorului 2
cout <<"n1=";
cin>>n1;
for (i=1;i<=n1;i++)
cin>>v1[i];
//Adaugam elementele vectorului v in multime
for (int i =1; i <= n; i++)
numere.insert(v[i]);
//parcurgem vectorul al doilea si verificam daca elementele sale se contin in multimea
numere
for (int i = 1; i <= n; i++)
if (numere.find(v1[i]) != numere.end())
// daca valoarea este prezenta in multime o afisam
cout << v1[i] << " ";
return 0;
}

S-ar putea să vă placă și