Se citesc din fişierul text date.in n apoi n numere întregi separate prin câte un spaţiu. Se cere să se scrie în fişierul text date.out: 1. numerele care au exact 3 cifre şi sunt pare; dacă nu există, să se afişeze mesaj corespunzător 2. numărul de valori negative din şir 3. media aritmetică a numerelor impare 4. cel mai mare / cel mai mic număr par, dacă există sau mesaj corespunzător 5. mesaj corespunzător în urma verificării dacă toate numerele sunt egale / în ordine crescătoare 6. toate numerele care se termină în 0 7. ultima cifră a produsului numerelor nenule 8. numerele prime din șirul dat I
Răspunsuri la întrebare
Răspuns de
3
#include <bits/stdc++.h>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int n,x,y=1000000001,treip,neg,sumimp,maxp=-1000000001,minp=1000000001,egal,cresc,zero[10001],z,ultimprod=1,prim[10001],p;
double nrimp;
int numCif(int a);
int Prime(unsigned long a);
int main()
{
fin >> n;
for(int i=1;i<=n;i++)
{
fin >> x;
if(x%2==0 and numCif(x)==3)
fout << x << " ", treip++;
if(x<0) neg++;
if(x%2==1)
sumimp+=x, nrimp++;
else
{
if(x>maxp) maxp=x;
if(x<minp) minp=x;
}
if(x==y) egal++;
if(x>y) cresc++;
y=x;
if(x%10==0) zero[z++]=x;
if(x!=0) ultimprod*=x%10;
ultimprod%=10;
if(Prime(x)) prim[p++]=x;
}
if(treip==0) fout << "NU EXISTA" << endl;
else fout << endl;
fout << neg << endl;
if(nrimp==0) fout << "NU EXISTA" << endl;
fout << sumimp/nrimp << endl;
if(maxp==-1000000001) fout << "NU EXISTA" << endl;
else fout << maxp << " " << minp << endl;
if(egal+1==n) fout << "EGAL NU CRESCATOR" << endl;
else if(cresc+1==n) fout << "NU EGAL CRESCATOR" << endl;
else fout << "NU EGAL NU CRESCATOR" << endl;
if(z==0) fout << "NU EXISTA" << endl;
else
{
for(int i=0;i<z;i++)
fout << zero[i] << " ";
fout << endl;
}
fout << ultimprod << endl;
if(p==0) fout << "NU EXISTA";
else
{
for(int i=0;i<p;i++)
fout << prim[i] << " ";
}
return 0;
}
int numCif(int a)
{
if(a==0) return 1;
int k=0;
while(a!=0)
{
a/=10;
k++;
}
return k;
}
int Prime(unsigned long a)
{
unsigned long i;
if (a == 2)
return 1;
if (a == 0 || a == 1 || a % 2 == 0)
return 0;
for(i = 3; i*i <= a && a % i; i += 2)
;
return i*i > a;
}
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
int n,x,y=1000000001,treip,neg,sumimp,maxp=-1000000001,minp=1000000001,egal,cresc,zero[10001],z,ultimprod=1,prim[10001],p;
double nrimp;
int numCif(int a);
int Prime(unsigned long a);
int main()
{
fin >> n;
for(int i=1;i<=n;i++)
{
fin >> x;
if(x%2==0 and numCif(x)==3)
fout << x << " ", treip++;
if(x<0) neg++;
if(x%2==1)
sumimp+=x, nrimp++;
else
{
if(x>maxp) maxp=x;
if(x<minp) minp=x;
}
if(x==y) egal++;
if(x>y) cresc++;
y=x;
if(x%10==0) zero[z++]=x;
if(x!=0) ultimprod*=x%10;
ultimprod%=10;
if(Prime(x)) prim[p++]=x;
}
if(treip==0) fout << "NU EXISTA" << endl;
else fout << endl;
fout << neg << endl;
if(nrimp==0) fout << "NU EXISTA" << endl;
fout << sumimp/nrimp << endl;
if(maxp==-1000000001) fout << "NU EXISTA" << endl;
else fout << maxp << " " << minp << endl;
if(egal+1==n) fout << "EGAL NU CRESCATOR" << endl;
else if(cresc+1==n) fout << "NU EGAL CRESCATOR" << endl;
else fout << "NU EGAL NU CRESCATOR" << endl;
if(z==0) fout << "NU EXISTA" << endl;
else
{
for(int i=0;i<z;i++)
fout << zero[i] << " ";
fout << endl;
}
fout << ultimprod << endl;
if(p==0) fout << "NU EXISTA";
else
{
for(int i=0;i<p;i++)
fout << prim[i] << " ";
}
return 0;
}
int numCif(int a)
{
if(a==0) return 1;
int k=0;
while(a!=0)
{
a/=10;
k++;
}
return k;
}
int Prime(unsigned long a)
{
unsigned long i;
if (a == 2)
return 1;
if (a == 0 || a == 1 || a % 2 == 0)
return 0;
for(i = 3; i*i <= a && a % i; i += 2)
;
return i*i > a;
}
stassahul:
Parca lam verificat la toate exceptiile, de ceva imi scrii daca iti da vreun rezultat gresit
Alte întrebări interesante
Limba română,
8 ani în urmă
Studii sociale,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă