Se consideră un tablou de N elemente întregi (N fiind citit de la tastatură). Să se realizeze următoarele operații asupra elementelor tabloului: - să se citească elementele tabloului - să se afișeze elementele tabloului - să se afișeze suma elementelor pare respectiv suma elementelor impare - să se afișeze mimimul elementelor tabloului - să se calculeze produsul elementelor tabloului - să se afișeze elementele tabloului sortat descrescător
Răspunsuri la întrebare
Răspuns de
1
Exista doua variante, una mai putin eficienta si una ceva mai eficienta.
Metoda 1, mai putin eficienta:
#include <iostream>
using namespace std;
int main()
{
int n, a[100];
cin >> n;
//citire
for (int i=0; i<n; i++) cin >> a[i];
//afisare
for (int i=0; i<n; i++) cout << a[i] << " ";
cout << "\n";
//suma elemente pare respectiv impare
int sPar=0, sImp=0;
for (int i=0; i<n; i++)
if (a[i]%2==0) sPar+=a[i];
else sImp += a[i];
cout << "sPar: " << sPar << " | sImp: " << sImp << "\n";
//minimul
int min=a[0];
for (int i=1; i<n; i++)
if (a[i]<min) min = a[i];
cout << "min: " << min << "\n";
//produsul elementelor
int p=1;
for (int i=0; i<n; i++)
p*=a[i];
cout << "p: " << p << "\n";
//sortare descrescatoare + afisare
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (a[i]<a[j]) swap(a[i], a[j]);
for (int i=0; i<n; i++) cout << a[i] << " ";
return 0;
}
Metoda 2, ceva mai eficienta (in for-ul in care se citesc elementele se afla toate datele, precum suma numerelor pare si impare):
#include <iostream>
using namespace std;
int main()
{
int n, a[100];
int sPar=0, sImp=0, min, p=1;
cin >> n;
//citire + aflare sume + minim + produs
for (int i=0; i<n; i++)
{
cin >> a[i];
//minim
if (i==0) min=a[i];
else if (a[i]<min) min = a[i];
//suma elemente pare respectiv impare
if (a[i]%2==0) sPar+=a[i];
else sImp += a[i];
//produsul elementelor
p*=a[i];
}
for (int i=0; i<n; i++) cout << a[i] << " ";
cout << "\n" <<
"sPar: " << sPar << " | sImp: " << sImp << "\n" <<
"min: " << min << "\n" <<
"p: " << p << "\n";
//sortare descrescatoare + afisare
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (a[i]<a[j]) swap(a[i], a[j]);
for (int i=0; i<n; i++) cout << a[i] << " ";
return 0;
}
O alegi pe care vrei, cel mai important e sa intelegi fiindca nu e tocmai nevoie de cine stie ce eficienta :).
Metoda 1, mai putin eficienta:
#include <iostream>
using namespace std;
int main()
{
int n, a[100];
cin >> n;
//citire
for (int i=0; i<n; i++) cin >> a[i];
//afisare
for (int i=0; i<n; i++) cout << a[i] << " ";
cout << "\n";
//suma elemente pare respectiv impare
int sPar=0, sImp=0;
for (int i=0; i<n; i++)
if (a[i]%2==0) sPar+=a[i];
else sImp += a[i];
cout << "sPar: " << sPar << " | sImp: " << sImp << "\n";
//minimul
int min=a[0];
for (int i=1; i<n; i++)
if (a[i]<min) min = a[i];
cout << "min: " << min << "\n";
//produsul elementelor
int p=1;
for (int i=0; i<n; i++)
p*=a[i];
cout << "p: " << p << "\n";
//sortare descrescatoare + afisare
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (a[i]<a[j]) swap(a[i], a[j]);
for (int i=0; i<n; i++) cout << a[i] << " ";
return 0;
}
Metoda 2, ceva mai eficienta (in for-ul in care se citesc elementele se afla toate datele, precum suma numerelor pare si impare):
#include <iostream>
using namespace std;
int main()
{
int n, a[100];
int sPar=0, sImp=0, min, p=1;
cin >> n;
//citire + aflare sume + minim + produs
for (int i=0; i<n; i++)
{
cin >> a[i];
//minim
if (i==0) min=a[i];
else if (a[i]<min) min = a[i];
//suma elemente pare respectiv impare
if (a[i]%2==0) sPar+=a[i];
else sImp += a[i];
//produsul elementelor
p*=a[i];
}
for (int i=0; i<n; i++) cout << a[i] << " ";
cout << "\n" <<
"sPar: " << sPar << " | sImp: " << sImp << "\n" <<
"min: " << min << "\n" <<
"p: " << p << "\n";
//sortare descrescatoare + afisare
for (int i=0; i<n-1; i++)
for (int j=i+1; j<n; j++)
if (a[i]<a[j]) swap(a[i], a[j]);
for (int i=0; i<n; i++) cout << a[i] << " ";
return 0;
}
O alegi pe care vrei, cel mai important e sa intelegi fiindca nu e tocmai nevoie de cine stie ce eficienta :).
Răspuns de
0
program s1;
uses crt;
type tab=array[1..100] of integer;
var x,i,n,k,f,m:integer; a:tab;
begin
clrscr;
read(n);
f:=0;
k:=0;
m:=1;
for i:=1 to n do
read(a[i]);
for i:=1 to n do
write(a[i]:5);
writeln;
for i:=1 to n do
if a[i] mod 2=0 then f:=f+a[i]; { suma elemntelor pare}
writeln(f);
for i:=1 to n do
if a[i] mod 2<>0 then k:=k+a[i]; {suma elemntelor impare}
writeln(k);
for i:=1 to n do {suma tuturor elementelor}
m:=m*a[i];
writeln(m);
readkey;
end.
la celelalte 2 n-am inteles ...
uses crt;
type tab=array[1..100] of integer;
var x,i,n,k,f,m:integer; a:tab;
begin
clrscr;
read(n);
f:=0;
k:=0;
m:=1;
for i:=1 to n do
read(a[i]);
for i:=1 to n do
write(a[i]:5);
writeln;
for i:=1 to n do
if a[i] mod 2=0 then f:=f+a[i]; { suma elemntelor pare}
writeln(f);
for i:=1 to n do
if a[i] mod 2<>0 then k:=k+a[i]; {suma elemntelor impare}
writeln(k);
for i:=1 to n do {suma tuturor elementelor}
m:=m*a[i];
writeln(m);
readkey;
end.
la celelalte 2 n-am inteles ...
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
9 ani în urmă
Informatică,
9 ani în urmă
Matematică,
9 ani în urmă