Cod sursa(job #380349)

Utilizator militerMilitaru Gabriel Ovidiu militer Data 5 ianuarie 2010 20:47:17
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include<iostream>
using namespace std;
void  citire(long a[],long &n){
int i;
cin>>n;
for(i=1;i<=n;i++)
    cin>>a[i];}
void neg(long a[],long &n)
{int i,j=1;
for(i=1;i<=n;i++)
    if(a[i]>=0)
        {a[j]=a[i];
        j++;}
    n=j-1;    
}
void descomp(long a[],long n)
{int i,d,max;
for(i=1;i<=n;i++)
{cout<<a[i]<<" : ";
for(d=2;d<=a[i]/2;d++)
    {if(a[i]%d==0)
    cout<<d<<" ";    
    if(max<d)max=d;}
    cout<<endl;
}
cout<<"Maxumul este "<<max<<endl;
}
void frecventa(long a[],long n)
{int c,aux,b[10]={0},i;
for(i=1;i<=n;i++)
    {aux=a[i];
while(aux!=0)
    {c=aux%10;
    b[c]=b[c]+1;
    aux/=10;
    }}
for(i=1;i<=9;i++)
    cout<<i<<" apare de "<<b[i]<<endl;}
void elemmax(long a[],long n)
{int max1=0,max2=0,max3=0,i;
for(i=1;i<=n;i++)
    if(a[i]>max1){max3=max2;max2=max1;max1=a[i];}
    else
    if(a[i]>max2){max3=max2;max2=a[i];}
    else
    if(a[i]>max3)max3=a[i];
cout<<"Cele mai mari valori sunt "<<max1<<" "<<max2<<" "<<max3<<endl;}
    
    
void crescator(long a[],long n)
{int i,aux,sf,elem=0,c1,c2;
for(i=1;i<n;i++)
{sf=1;
while(aux!=0)    
    {c1=aux%10;
    c2=aux%100;
    aux/=10;
    if(c1<c2)sf=0;}
if(sf==1)elem++;}
cout<<elem<<" numere au cifrele ordonate crescator"<<endl;}
    
int main(){
    
long a[30],n;
    citire(a,n);
    neg(a,n);
    descomp(a,n);
    frecventa(a,n);
    elemmax(a,n);
    crescator(a,n);
    return 0;}