Fișierul atestat.in conține cel mult 100 de numere naturale, separate prin câte un spațiu, având fiecare cel mult 8 cifre.
Să se scrie un program, în limbajul Pascal/C/C++, care:
a) scrie pe ecran, în linie, separate prin câte un spațiu, numerele pare din șir, aflate pe poziții impare. Dacă nu există astfel de numere în șir, se va scrie pe ecran mesajul "NU EXISTĂ ".
b) prin intermediul subprogramului cifre verifică dacă un număr natural cu cel mult 8 cifre, primit ca parametru, are prima cifră egală cu ultima, scrie pe ecran, toate numerele din șir care au prima cifră egală cu ultima cifră. Dacă nu există astfel de numere în șir se va afișa mesajul "NU EXISTĂ".
c) scrie în fișierul atestat.out media aritmetică dintre cel mai mic și cel mai
mare număr din șir.
Exemplu:
atestat.in: 10
13 797 25 303 482 12321 72 46 282 31
atestat.out: a) 2
b) 72
Fisierul atestat.out conține:
c) 13 797 31
VĂ ROG E URGENT!!!!
DAU COROANĂ
Răspunsuri la întrebare
Răspuns:
#include <ifstream>
#include <fstream>
using namespace std;
ifstream f("atestate.in");
ofstream g("arestate.out");
int main()
{
int v[101],n,i,uc,o,y,p,max,min,s;
float ma;
f>>n; //nr. de elemente ce vor fi citite
for(i=1;i<=n;i++)
f>>v[i];
ok=0;
for(i=1;i<=n;i++)
{
if(i%2!=0)
if(v[i]%2==0)
{
cout<<v[i]<<' ';
ok++;
}
}
if(ok==0)
cout<<"NU EXIZTA NR PARE PE LOCURILE IMPARE"<<endl;
ok=0;
for(i=1;i<=n;i++)
{
y=v[i];
o=0;
while(y!=0)
{
uc=y%10;
o=o*10+uc;
y=y/10;
}
p=o%10;
uc=v[i]%10;
if(p==uc)
{
cout<<v[i]<<' ';
ok++;
}
}
if(ok==0)
cout<<"NU EXISTA"<<endl;
//determinare max max=v[1];
for(i=2;i<=n;i++)
if(v[i]>max)
max=v[i];
//determinare min
min=v[1];
for(i=2;i<=n;i++)
if(v[i]<min)
min=v[i];
s=min+max;
ma=s/2.0;
g<<ma;
return 0;
}