Atestat 2016 31-40
/*31. Se citeşte o matrice cu n linii şi m coloane. Se cere:
a) Să se formeze un vector în care se vor reţine elementele maxime de pe fiecare coloană a
matricei;
b) Să se ordoneze vectorul format la punctul a. */
#include <iostream>
#include<algorithm>
using namespace std;
int a[100][100],b[100],n,m;
int main()
{
int i,j,max;
cout<<"n=";cin>>n;
cout<<"m=";cin>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
for(j=1;j<=m;j++)
{
max=a[1][j];
for(i=1;i<=n;i++)
if(a[i][j]>max)max=a[i][j];
b[j]=max;
}
cout<<"elementele maxime pe coloane"<<endl;
for(i=1;i<=m;i++)cout<<b[i]<<' ';
cout<<endl<<"elementele vectorului sortat"<<endl;
sort(b+1,b+m+1);
for(i=1;i<=m;i++)cout<<b[i]<<' ';
return 0;
}
/*32. Se dă o matrice x, cu n linii şi n coloane, cu elemente întregi. Să se determine numărul elementelor
din matrice care sunt < 24 şi se găsesc deasupra diagonalei principale, pe linii pare.*/
#include <iostream>
using namespace std;
int main()
{
int x[100][100],n,i,j;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"x["<<i<<"]["<<j<<"]=";cin>>x[i][j];
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<x[i][j]<<' ';
cout<<endl;
}
int c=0;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(x[i][j]<24&& i%2==0)c++;
cout<<c;
return 0;
}
/* 33. Se dă un şir x de n elemente întregi. Să se caute ultimul element impar mai mare decât 15. */
#include <iostream>
using namespace std;
int x[100],n,i;
int main()
{
cout <<"n=";cin>>n;
cout<<"dati numerele"<<endl;
for(i=1;i<=n;i++)cin>>x[i];
cout <<"ultimul element impar mai mare ca 15"<<endl;
int gasit=0;
i=n;
while(gasit==0 && i>=1)
{
if(x[i]%2==1 && x[i]>15) {cout<<x[i];gasit=1;}
i--;
}
return 0;
}
/*34. Se dă o matrice x, cu n linii şi n coloane. Să se determine maximul elementelor pare de pe coloana
p.*/
#include <iostream>
using namespace std;
int main()
{
int x[100][100],n,i,j,p,mx;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
cout<<"x["<<i<<"]["<<j<<"]=";cin>>x[i][j];
}
cout<<"p=";cin>>p;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
cout<<x[i][j]<<' ';
cout<<endl;
}
i=1;
while(i<=n && x[i][p]%2==1)i++;
if(i>n)cout<<"nu exista elemente pare pe coloana "<<p;
else
{
i--;
mx=x[i][p];
for(j=i;j<=n;j++)
if(mx<x[j][p] && x[j][p]%2==0) mx=x[j][p];
cout<<mx;
}
return 0;
}
/*35. Se citeşte de la tastatură un cuvânt. Să se afişeze numărul iniţial de caractere ale cuvântului şi
apoi să se şteargă toate vocalele din cuvânt. */
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char s[100];int i,n;
cout << "cuvantul=";cin>>s;
n=strlen(s);
cout<<n<<' ';
for(i=0;i<strlen(s);i++)
if(strchr("AEIOUaeiou",s[i])!=0){strcpy(s+i,s+i+1);i--;}
cout<<s;
return 0;
}
/*36. Se citesc de la tastatură 2 şiruri de caractere. Să se verifice dacă sunt egale (la fel) fără a se face
deosebire între literele mari şi literele mici.*/
#include <iostream>
#include <string.h>
using namespace std;
char s1[100],s2[100];
int main()
{
cout << "primul sir=";cin.get(s1,100);
cin.get();
cout<<"al doilea sir=";cin.get(s2,100);
strupr(s1);strupr(s2);
if(strcmp(s1,s2)==0)cout<<"acelasi";
else cout<<"diferite";
return 0;
}
/*37. Se citeşte un număr natural n. Să se determine cifra maximă din număr, folosind un
subprogram.
Exemplu: Dacă n=7934, atunci cifra maximă este 9. */
#include <iostream>
using namespace std;
int maxim(long int n)
{
int r,mx=0;
while(n!=0)
{
r=n%10;
n=n/10;
if(r>mx)mx=r;
}
return mx;
}
int main()
{
long int n;
cout << "n=";cin>>n;
cout<<maxim(n);
return 0;
}
/*38. Se consideră o matrice cu m linii şi n coloane, elementele matricei sunt numere întregi. Să se
determine elementul minim de pe o coloană c, dată de la tastatură.*/
#include <iostream>
using namespace std;
int a[100][100],n,m,c,i,j,mn;
int main()
{
cout<<"m=";cin>>m;
cout<<"n=";cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";cin>>a[i][j];
}
cout<<"c=";cin>>c;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
cout<<"elementul minim de pe coloana "<<c<<endl;
mn=a[1][c];
for(i=1;i<=m;i++)
if(mn>a[i][c])mn=a[i][c];
cout<<mn;
return 0;
}
/*39. Se citeşte un număr natural n. Să se creeze o matrice care conţine:
- cifrele numărului pe diagonala principală;
- valoarea elementelor rămase în matrice, să conţină valoarea 0.
*/
#include <iostream>
using namespace std;
long int n;
int a[20][20];
int main()
{
cout << "n=";cin>>n;
int c=0;
while(n!=0)
{
a[c][c]=n%10;
n=n/10;
c++;
}
int i,j;
for(i=0;i<c;i++)
for(j=0;j<c;j++)
if(i!=j)a[i][j]=0;
for(i=0;i<c;i++)
{
for(j=0;j<c;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
return 0;
}
/*40. Să se scrie un program care determină media aritmetică a elementelor pare dintr-un vector
folosind un subprogram */
#include <iostream>
using namespace std;
int a[100],n,s=0,c=0;
void medie()
{
int i;
for(i=1;i<=n;i++)
if(a[i]%2==0){s=s+a[i];c++;}
if(c!=0) cout<<(float)s/c;
else cout<<"nu exista elemente pare";
}
int main()
{
cout <<"n=";cin>>n;
cout<<"dati numerele"<<endl;
for(int i=1;i<=n;i++)cin>>a[i];
medie();
return 0;
}