Sunteți pe pagina 1din 6

1.Se citete de la tastatur un numr natural P.

S se determine toate tripletele distincte de numere ntregi (i, j, k) cu proprietatea c ele pot reprezenta laturile unui triunghi de perimetru P. #include<iostream.h> int main() { int P; cin>>P; int i, j, k; for(i=0; i<=P; i++) for(j=0; j<=P; j++) { k=P-i-j; if(i+j>=k && i+k>=j && j+k>=j) if(i<=j) cout<<i<<" "<<j<<" "<<k<<endl; } return 0; } 2. S se scrie un program pentru calculul numrului combinrilor de n luate cte m. #include<iostream.h> int fact(int a) { int fact=1; int i; for(i=1; i<=a; i++) fact*=i; return fact; } int main() { int n,m,c; cin>>n>>m; c=fact(n)/(fact(m)*fact(n-m)); cout<<c; return 0; } 3. S se scrie un program care determin valoarea minim dintre toate valorile maxime pe liniile unei
matrice de numere intregi (punct in "a").

#include<iostream.h> int N, M, m[100][100]; int maxim(int a, int P) { int k, max=0; for(k=0; k<P; k++) if(m[a][k]>max) max=m[a][k]; return max;

} int main() { int v[100],i,j, min; cin>>N>>M; for(i=0; i<N; i++) for(j=0; j<M; j++) cin>>m[i][j]; for(i=0; i<N; i++) v[i]=maxim(i, M); min=v[0]; for(i=1; i<N; i++) if(v[i]<min) min=v[i]; cout<<min; return 0; } 4. Se citete o matrice ptratic A de la tastatur. Afiati toate elementele de sub diagonala
secundar, pe coloane.

#include<iostream.h> int main() { int A[100][100], N, i, j; cin>>N; for(i=0; i<N; i++) for(j=0; j<N; j++) cin>>A[i][j]; for(j=1;j<N;j++) { int k=0; while(j+k<N) { cout<<A[N-k-1][j+k]; k++; } } return 0; } 5. Program pentru afiarea celei mai lungi secvene de elemente consecutive ordonate cresctor
dintr-un vector de numere naturale.

#include<iostream.h> int main() { int N, v[100], i,k,nr,a; cin>>N; for(i=0; i<N; i++) cin>>v[i]; a=0;

k=0; nr=0; int s=0; for(i=0; i<N; i++) { if(v[i]<=v[i+1]) nr++; else if(nr>k) { k=nr; s=a; a+=(nr+1); nr=0; } else a=i+1; } for(i=s; i<s+k+1; i++) cout<<v[i]; return 0; } 6. Program pentru afiarea secvenei de elemente consecutive de sum maxim dintr-un vector. #include<iostream.h> int main() { int N, v[100],i; cin>>N; for(i=0; i<N; i++) cin>>v[i]; int st, dr, sumMax, s, poz; s=0; st=0; dr=0; poz=0; sumMax=-0x3f3f3f3f; for(i=0; i<N; i++) { if(s>=0) s+=v[i]; else { s=v[i]; poz=i; } if(s>sumMax) { sumMax=s; st=poz; dr=i; }

} for(i=st; i<=dr; i++) cout<<v[i]; return 0; } 7. S se scrie o funcie care primete ca parametru un vector v i o

valoare x care modific vectorul v astfel nct elementele mai mici ca x se afl la nceputul vectorului i elementele mai mari sau egale cu x la sfritul lui.
#include<iostream.h> void transform(int v[], int n, int x) { int cont=0; int i,j,aux[100]; i=0; for ( j=0; j<n; j++) if ( v[j] < x ){ aux[i]=v[j]; i++; } for(j=0; j<n; j++) if ( v[j] >= x){ aux[i]=v[j]; i++; } for(i=0;i<n; i++) v[i]=aux[i]; } int main() { int N, X, V[100],i; cin>>N>>X; for(i=0; i<N; i++) cin>>V[i]; transform(V,N,X); for(i=0; i<N; i++) cout<<V[i]; return 0; }

8. Sa se scrie o functie care sorteaza un vector.


#include<iostream.h>

void Sort( int *V , int N ) { int i, j, aux; for(i=0; i<N-1; i++) for(j-i+1; j <=N) if(V[i]>V[j]) { aux=V[i]; V[i]=V[j]; V[j]=aux; } } int main() { int n , v[10000]; cin>>n; int i; for( i= 0; i<n ; i++) cin>>v[i]; Sort( v , n); for(i=0; i<n; i++) cout<<v[i]; return 0; } 9.
Scriei o funcie care s verifice dac un numr ntreg n conine cifra c. Numerele n i c sunt date ca parametri.

#include<iostream.h> int cifra ( int n, int c ) { int p = 0; while ( n ) { if ( n % 10 == c ) { p = 1; break; } n = n / 10; } return p; } int main () { int N , C; cin>>N>>C; if ( cifra (N, C) == 1) cout<<"DA";

else cout<<"NU"; return 0; } 10.


Scriei o funcie care s calculeze numrul de cifre ale unui numr ntreg dat ca parametru, N.

#include <iostream.h> int nrcf(long n) { if (n == 0) return 1; int nr = 0; while (n) { n = n/10; nr++; } return nr; } int main(void) { long N; cout<<"N = "; cin<<N; cout<<"Numarul <<N<< are << nrcf(N)<< cifre!\n"; return 0; }

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