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

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 Utilizator anonim
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 :).

Răspuns de lonefalcon1
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 ...
Alte întrebări interesante