Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
#include <stdio.h>
{ int r,d=a,i=b;
do {r=d%i;
d=i; i=r;}
while(r<>0);
return i;}
void main()
{ int n1,n2;
scanf("%d%d",&n1,&n2);
if(n1&&n2) printf("\ncmmdc=%d",cmmdc(n1,n2));
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>
……………………
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;}
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++)
for(j=i+1;j<n;j++)
if((*compara)((char*)v+dim*i,(char*)v+dim*j))
{memmove(aux,(char*)v+dim*i,dim);
memmove((char*)v+dim*i,(char*)v+dim*j,dim);
memmove((char*)v+dim*j,aux,dim);
}
free(aux);}
Exemplu de apel pentru un vector de cuvinte:
#include <stdio.h>
#include <string.h>
#include<conio.h>
#include "exp_tip.cpp"
int compara(const void *a, const void *b)
{ if(strcmp((char *)a, (char *)b)>0)return 1;
else return 0;}
void main()
{ typedef char cuvant[10];
cuvant vect[20];
int n;
clrscr();
printf("Dimensiunea vectorului de cuvinte:");
scanf("%d",&n);
printf("\nCuvintele:");
for(int i=0;i<n;i++)scanf("%s",&vect[i]);
sort(vect,n,10,compara);
printf("\nCuvintele sortate:");
for(i=0;i<n;i++)printf("\n%s",vect[i]);
getch();}
5)Să se calculeze cel mai mare divizor comun al unui număr oarecare de numere întregi.
#include<stdio.h>
#include<conio.h>
#include<stdarg.h>
int cmmdc_var(int,...);
int cmmdc(int, int);
void main()
{ int x,y,z,w;
clrscr();
scanf("%d%d%d%d",&x,&y,&z,&w);
printf("\nCmmdc al primelor 3 numere:%d\n",cmmdc_var(3,x,y,z));
printf("\nCmmdc al tuturor numerelor:%d\n",cmmdc_var(4,x,y,z,w));}
//cel mai mare divizor comun a doua numere
int cmmdc(int x,int y)
{ int d=x,i=y,r;
do{r=d%i;
d=i;i=r;}
while(r);
return d;}
//cel mai mare divizor comun a nr numere
int cmmdc_var(int nr,...)
{ va_list ptlist;
/*initializarea lui ptlist cu adresa de inceput a listei de
parametri*/
va_start(ptlist,nr);
//extragerea primului parametru, de tip int
x=va_arg(ptlist,int);
for(int i=1;i<nr;i++)
{
//extragerea urmatorului element din lista de parametri
y=va_arg(ptlist,int);
z=cmmdc(x,y);x=z;
}
va_end(ptlist);
return x;}