structuri
La o staţie de benzină există mai multe maşini caracterizate prin număr, marcă şi culoare. Se cere:
a) Să se determine numărul maşinilor Dacia;
b) Să se ordoneze maşinile după culoare.
#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{char marca[20],culoare[20],med[20];
int nr;}masina ;
masina a[20];
int n,x,k;
void citire()
{int i;
cout<<"n=";cin>>n;
for (i=1;i<=n;i++)
{cout<<"a[i].marca: ";cin>>a[i].marca;
cout<<"a[i].culoare: ";cin>>a[i].culoare;
cout<<"a[i].numar: ";cin>>a[i].nr;
}
}
void nr_dacia()
{ int i;
int nr=0;
for (i=1;i<=n;i++)
{x=strcmp(a[i].marca,"dacia");
if (x==0) nr=nr+1;}
cout<<"numarul de masini Dacia este "<<nr<<"\n";
}
void sortare()
{ int i,j;masina aux;
for (i=1;i<=n-1;i++)
for (j=i+1;j<=n;j++)
{x=strcmp(a[i].culoare,a[j].culoare);
if(x>0)
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
for (i=1;i<=n;i++)
cout<<a[i].culoare<<" "<<a[i].marca<<" "<<a[i].nr<<endl;
}
void main()
{
citire();
nr_dacia();
sortare();
}
Pentru evidenţa produselor cosmetice dintr-un depozit, se defineşte o structură cu următoarele informaţii: codul produsului, denumire, preţul produsului. Citiţi informaţiile tuturor produselor şi afişaţi produsele cu noile preţuri (valoarea lui x este 7 dacă codul produsului este mai mic decât 500. Şi 11 în caz contrar). Afişaţi produsele cu cel mai mare preţ după scumpire.
#include<iostream.h>
#include<string.h>
#include<conio.h>
typedef struct
{int cod,c,p,pret;
char den[20];}produse;
produse a[20];
int n,i,c,p;
void citire()
{
cout<<"Dati numarul de produse ";cin>>n;
for (i=1;i<=n;i++)
{cout<<"codul produsului ";cin>>a[i].cod;
cout<<"pretul produsului ";cin>>a[i].pret;
cout<<"denumirea produsului ";cin>>a[i].den;}
}
void rezolvare()
{
for (i=1;i<=n;i++)
if(a[i].cod<500) a[i].pret=7;
else a[i].pret=11;
for (i=1;i<=n;i++)
cout<<"pretul "<<a[i].den<<" este "<<a[i].pret<<"\n";
cout<<endl;
for (i=1;i<=n;i++)
if(a[i].pret==11) cout<<a[i].den<<"\n";
}
void main()
{
citire();
rezolvare();
}
Se citesc de la tastatură numele şi media generală a n elevi. Se cere să se afişeze lista elevilor în ordinea descrescătoare a mediilor.
#include<iostream.h>
#include<string.h>
typedef struct elev{
char nume[50];
float medie;
};
elev a[100],aux;
int n;
void citire()
{int i;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<"a[i].nume: ";cin>>a[i].nume;
cout<<"a[i].medie: ";cin>>a[i].medie;
}
}
void sortare()
{int i,j;
for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
if(a[i].medie<a[j].medie)
{aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
}
void afisare()
{int i;
for(i=1;i<=n;i++)
cout<<a[i].nume<<" "<<a[i].medie<<endl;
}
void main()
{citire();
cout<<"lista de elevi\n";
afisare();
sortare();
cout<<"dupa sortare\n";
afisare();
}