scrie o funcţie care calculează cel mai mare divizor comun dintre două numere întregi nenule, utilizînd algoritmul lui Euclid şi un apelant pentru testare.
#include <stdio.h>
/*definirea functiei cmmdc*/
int cmmdc(int a, int b)
{ int r,d=a,i=b;
do {r=d%i;
d=i; i=r;}
while(r<>0);
return i;}
void main()
{ int n1,n2;
printf("Numerele pentru care se va calcula cmmdc:");
scanf("%d%d",&n1,&n2);
if(n1&&n2) printf("ncmmdc=%d",cmmdc(n1,n2));
else printf("Numerele nu sînt nenule!");}
2) Să se calculeze produsul a două matrice.
void produs(float a[][10],float b[][20], float c[][20],int m,
int n,int p)
{ int i,j,k;
for(i=0;i<m;i++)
for(j=0;j<p;j++)
for(c[i][j]=0,k=0;k<n;k++)c[i][j]+=a[i][k]*b[k][j];}
3) Să se calculeze produsul dintre o matrice şi un vector.
#include<malloc.h>
……………………
float * prod(float a[][30], float v[],int m, int n)
{ float *p;int i,j;
p=(float *)malloc(sizeof(float)*m);
for(i=0;i<m;i++)
for(p[i]=0,j=0;j<n;j++) p[i]+=a[i][j]*v[j];
return p;}
Apelul se realizează astfel:
float a[20][30], b[30], *c;
int m,n;
…………………………
c=prod(a,b,m,n);
4)Să se sorteze un şir cu elemente de un tip neprecizat, dar pe care se poate defini o relaţie de ordine (de exemplu numeric, şir de caractere, caracter).
#include <mem.h>
#include<malloc.h>
int compara(const void *x, const void *y);
void sort(void *v, int n, int dim,
int (*compara)(const void *x,const void *y))
{ int i,j;
void *aux;
aux=malloc(dim);
for(i=0;i<n-1;i++)
Academia de Studii Economice
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.