Mesaje privateMesaje private   AutentificareAutentificare 

 
[probleme-vector1]-C++

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului Crackers's Official Supporting Forum : IC++/C#
Subiectul anterior :: Subiectul urmator  
Autor Mesaj

GiovanY
Founder
Founder
GiovanY

Data inscrierii: 05/Sep/2008
Mesaje: 1979

MesajTrimis: 16/11/2008 11:37    Titlul subiectului: [probleme-vector1]-C++ Raspunde cu citat (quote)

Se citeste un vector din fisier.
1. Sa se determine cate valori au cifra zecilor un nr par.
2. Sa se elimine toate valorile mai mici sau egale decat 0.
3. Sa se insereze dupa fiecare valoare para cel mai mare numar mai mic
decat valoarea care e compus din cifre distincte.
4. Sa se determine secventa de extindere maxima cu prop. ca e format din valori
crescatoare.
!!! Deschizi un new file si scrie acolo:
nr valori:10
ex valori:122 129 0 443 -5 44 -8 824 -29 424
In loc de 10 pune ce cifra vrei si in loc de explele prezentate mai sus..pui tu ce nr doresti.
Cod:

#include<fstream.h>
#include<conio.h>
int v[100], n;
void citire()
{
  ifstream f("e1.in");
  f>>n;
  for(int i=1;i<=n;i++)
  f>>v[i];
}
void afis()
{
  for(int i=1;i<=n;i++)
  cout<<v[i]<<" ";
  cout<<endl;
}
void pct1()
{
  int k=0;
  for(int i=1;i<=n;i++)
  if(v[i]>10)
  if(v[i]%100/10%2==0) k++;
  if(k==0)
  cout<<"Nu exista numere cu cifra zecilor pare.";
  else cout<<k<<" nr cu cifra zecilor pare.";
  cout<<endl;
}
void eliminare()
{
 int i=1,j;
 while(i<=n)
 if(v[i]<=0)
 {
   for(j=i;j<=n-1;j++)
   v[j]=v[j+1];
   n--;
 }
 else i++;
}
int distincte(int x)
{
  int a[10],i;
  for(i=0;i<10;i++)
  a[i]=0;
  while(x!=0)
  {
    a[x%10]++;
    x=x/10;
  }
  for(i=0;i<10;i++)
  if(a[i]>1) return 0;
  return 1;
}
int valoare(int x)
{
  int v=x;
  while(distincte(v)==0)
  v--;
  return v;
}
void inserare()
{
  int i=1,j;
  while(i<=n)
   if(v[i]%2==0)
   {
     for(j=n;j>=i+1;j--)
     v[j+1]=v[j];
     n++;
     v[i+1]=valoare(v[i]);
     i=i+2; //sarim peste valoarea inserata.
   }
   else i++;
}
void secventa()
{
  int l,i,lmax,poz;
  l=lmax=poz=1;
  for(i=2;i<=n;i++)
  {
    if(v[i]>=v[i-1]) l++;
    else l=1;
    if(l>lmax)
    {
      lmax=l;
      poz=i-l+1;
    }
  }
  cout<<"Lungimea secventei: "<<lmax;
  cout<<endl;
  for(i=poz;i<=lmax+poz-1;i++)
  cout<<v[i]<<" ";
}
void main()
{
  clrscr();
  citire();
  cout<<"Vectorul initial: ";
  afis();
  pct1();
  eliminare();
  cout<<"Vectorul fara valori negative: ";
  afis();
  inserare();
  cout<<"Vectorul cu valori inserate: ";
  afis();
  secventa();
  getch();
}

_________________
I love u:XSmile.
Respect: All:)

[probleme-vector1]-C++ [probleme-vector1]-C++
Sus
Vezi profilul utilizatorului Trimite mesaj privat Trimite un mesaj
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului Crackers's Official Supporting Forum : IC++/C# Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum