Sunteți pe pagina 1din 7

TEMA

#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("numere.in");

void citire(int x[100], int &n)


{
int i;
fin >>n;
for (i=1;i<=n;i++)
fin >>x[i];
}
void afisare (int x[100],int n)
{
int i;
for (i=1;i<=n;i++)
cout <<x[i]<<" ";
}
/*
///a
int pozitive(int x[100],int n)
{
int i;
for (i=1;i<=n;i++)
if (x[i]<=0) return 0;

return 1;
}

///b
int crescatoare(int x[100], int n)
{
int i;
for (i=1;i<=n;i++)
if (x[i]>x[i+1]) return 0;

return 1;
}

///c
int treicifre(int x[100], int n)
{
int i;
for (i=1;i<=n;i++)
if (x[i]>=100 && x[i]<=999) return 1;

return 0;
}

///d
int cifcresca(int n)
{
int uc,p;
uc=n%10;
p=n/10%10;
while (n>9)
{
if (p>uc) return 0;
uc=p;
n=n/10;
p=n/10%10;
}
return 1;
}

int nrcifcres(int x[100], int n)


{
int i;
for (i=1;i<=n;i++)
if (cifcresca(x[i])==1) return 1;

return 0;
}

///e
int invers(int n)
{
int uc,inv=0;
while (n!=0)
{
uc=n%10;
inv=inv*10+uc;
n=n/10;
}
return inv;
}

int verif(int x[100], int n)


{
int i;
for (i=1;i<=n;i++)
if (x[i+1]==invers(x[i])) return 1;

return 0;
}

int main ()
{
int x[100],n;
citire (x,n);
afisare (x,n);
if (pozitive(x,n)) cout <<"Da, toate elementele sunt pozitive";
else cout<<"Nu, nu toate elementele sunt pozitive";
cout <<endl<<endl;
if (crescatoare(x,n)) cout <<"Da, toate elementele sunt crescatoare";
else cout<<"Nu, nu toate elementele sunt crescatoare";
cout <<endl<<endl;
if (treicifre(x,n)) cout <<"Da, exista numere de trei cifre";
else cout<<"Nu, nu exista numere de trei cifre";
cout <<endl<<endl;
if (nrcifcres(x,n)) cout <<"Da, exista numere cu cifrele in ordine
crescatoare";
else cout<<"Nu, nu exista numere cu cifrele in ordine crescatoare";
cout <<endl<<endl;
if (verif(x,n)) cout<<"Da, exista numere cu proprietatea ca unul este inversul
celuilalt";
else cout<<"Nu, nu exista numere cu proprietatea ca unul este inversul
celuilalt";

int pozitive(int x[100], int n)


{
int i;
for (i=1;i<=n;i++)
if (x[i]<=0) return 0;
return 1;
}

int mini(int x[100], n)


{
int i,mini;
mini=INT_MAX;
for (i=1;i<=n;i++)
{
if (x[i]<mini)
mini=x[i];
}
return mini;

int maxi(int x[100], n)


{
int i,maxi;
maxi=INT_MIN;
for (i=1;i<=n;i++)
{
if (x[i]>maxi)
maxi=x[i];
}
return maxi;
}

void cifmax (int n, int &cmax)


{
int uc;
while (n!=0)
{
uc=n%10;
if (uc>cmax) cmax=uc;
n=n/10;
}
}

int main ()
{
int n, x[100], i, maxx=INT_MIN, minn=INT_MAX;
fin>>n;
for (i=1; i<=n; i++)
fin>>x[i];

if (pozitive(n,x))
{
for(i=1;i<=minim(n,x);i++)
if(minim(n,x)%i==0 && maxim(n,x)%i==0)
fout<<i<<" ";
}
}

//b)

int pozitive (int n, int x[100])


{
int i;
for (i=1; i<=n; i++)
if (x[i]<0) return 0;
return 1;
}

void mimax (int n, int x[100], int &minn, int &maxx)


{
int i;
for (i=1; i<=n; i++)
{
if (x[i]>maxx) maxx=x[i];
else if (x[i]<minn) minn=x[i];
}
}
void cifmax (int n, int &cmax)
{
int uc;
while (n!=0)
{
uc=n%10;
if (uc>cmax) cmax=uc;
n=n/10;
}
}

int main ()
{
int n, x[100], i, maxx=INT_MIN, minn=INT_MAX, cmax;
fin>>n;
for (i=1; i<=n; i++)
fin>>x[i];
if (pozitive(n,x))
{
for (i=1; i<=n; i++)
{
cmax=0;
cifmax(x[i],cmax);
fout<<cmax<<" ";
}
}
}

//c)

int pozitive (int n, int x[100])


{
int i;
for (i=1; i<=n; i++)
if (x[i]<0) return 0;
return 1;
}

void mimax (int n, int x[100], int &minn, int &maxx)


{
int i;
for (i=1; i<=n; i++)
{
if (x[i]>maxx) maxx=x[i];
else if (x[i]<minn) minn=x[i];
}
}
void cifmax (int n, int &cmax)
{
int uc;
while (n!=0)
{
uc=n%10;
if (uc>cmax) cmax=uc;
n=n/10;
}
}

int main ()
{
int n, x[100], i, maxx=INT_MIN, minn=INT_MAX, cmax, nou=0, cop, uc, pz;
fin>>n;
for (i=1; i<=n; i++)
fin>>x[i];
if (pozitive(n,x))
{
mimax(n,x,minn,maxx);
cmax=0;
cifmax(maxx,cmax);
cop=maxx;
pz=1;
while (cop!=0)
{
uc=cop%10;
if (uc!=cmax)
{
nou=nou+uc*pz;
pz=pz*10;
}
cop=cop/10;
}
fout<<nou;
}
}
*/

//1)
int nraparitii(int n, int c)
{
int uc,k=0;
while (n!=0)
{
uc=n%10;
if (uc==c)
k++;
n=n/10;
}
return k;
}
int celmaimare( int x[100], int n)
{
int i,maxi=0,maxim;
for (i=1;i<=n;i++)
if (nraparitii(x[i])>maxi)
{
maxi=nraparitii(x[i]);
maxim=x[i];
}
return maxim;
}

//b
int divizori(int n)
{
int d,k=0;
for (d=1;d<=n;d++)
if (n%d==0) k++;
return k;
}
int punctulb(int x[100], int n)
{
int i,max1,nrmax;
max1=0;
for (i=1;i<=n;i++)
{
if (divizori(x[i])>max1))
{
max1=divizori(x[i]);
nrmax=x[i];
}
}
return nrmax;
}

int main()
{
int x[100],n;
citire (x,n);
afisare (x,n);
cout <<celmaimare(x, n);
cout<<punctulb(x, n);
}

//2. a)
int exista(int x[100], int n)
{
int i,s,j;
for (i=10;i<=99;i++)
{
s=0;
for (j=1;j<=n;j++)
if (x[j]==i) s=1;
if (s==0) return i;
}
}

//b)
int exista1(int x[100], int n)
{
int n,maxim=INT_MIN;
for (i=1;i<=n;i++)
if (x[i]>maxim && x[i]>=10 && x[i]<=99)
maxim=x[i];
return maxim;
}

//c)
int maximul(int x[100], int n)
{
int i, mx1,mx2;
mx1=INT_MIN;
mx2=INT_MIN;
for (i=1;i<=n;i++)
if (x[i]>mx1) mx1=x[i];
if (i=1;i<=n;i++)
if (x[i]>mx2 && x[i]!=mx1) mx2=x[i];
if (mx1!=mx2) return mx1, mx2;

int main()
{
int x[100],n,m;
citire (x,n);
afisare (x,n);
cout <<exista(x, n);
cout <<exista1(x,n);
cout <<maximul(x, n);
}

S-ar putea să vă placă și