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

Știe cineva informatica? Va rog sa mă ajutați. .
SE da un vector va cu n elemente.Se cere:
b)sa se interschimbe intre ele elementele maxim și minim
c)sa se ordoneze crescător în funcție de ultima cifra a nr
d) sa se afișeze toate nr din vector care conțin doar cifrele pare

Răspunsuri la întrebare

Răspuns de CinevaFaraNume
0
#include <iostream>
using namespace std;

#define ultimaCifra(x) (x % 10)

bool contineNumaiCifrePare(int i){
int j = 1, a;
while((a = i % j) != i)
{
int cifra = (a - (i % (j / 10))) / j; // nu sunt foarte sigur de regula asta
if(cifra % 2 != 0)
return false;
j = j * 10;
}
return true;
}

int main(){
int n;
cin >> n;
int v[n];
for(int i = 0; i < n; i++)
{
cin >> v[i];
}
// a
int min = 10000,minId,max = 0,maxId;
for(int i = 0; i < n; i++)
{
int val = v[i];
if(val < min){
min = val;
minId = i;
}
if (val > max)
{
max = val;
maxId = i;
}
}
v[maxId] = min;
v[minId] = max;

// b
int rez[n];
for(int i = 0; i < n; i++){
int val = ultimaCifra(v[i]);
int nrMaiMici;
for(int j = 0; j < n; j++)
{
if(j == i) continue;
int v1 = ultimaCifra(v[j]);
if(v1 <= val)
{
nrMaiMici++;
}
}
rez[nrMaiMici] = v[i];
}

//c
for(int i = 0; i < n; i++)
{
if(contineNumaiCifrePare(v[i]))
cout << v[i];
}
}
Alte întrebări interesante