Sunteți pe pagina 1din 18

//calculul elem d rang impar dintr un vector alocat dinamic.

#include <stdio.h>
#include <malloc.h>
void main()
{ float *v,s;
int n,i;
printf("n=");scanf("%i",&n);
v=(float*)malloc(n*sizeof(float));
for(i=0;i<n;i++)
{ float t;
scanf("%f",&t);
v[i]=t;
}
s=0;
for(i=0;i<n;i++)
if (i%2!=0) s+=v[i];
printf("suma este %f",s);
free(v);
}
//functia pt calcularea sumei elem uni masiv tridimensional.
#include <stdio.h>
#include <malloc.h>
int suma(int ***a,int m, int n, int p)
{ int s=0,i,j,k;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
for(k=0;k<p;k++)
s+=a[i][j][k];
return(s);
}
void main()
{ int ***a,m,n,p,i,j,k;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
printf("p=");scanf("%i",&p);
a=(int***)malloc(m*sizeof(int**));
for(i=0;i<m;i++)
a[i]=(int**)malloc(n*sizeof(int*));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
a[i][j]=(int*)malloc(p*sizeof(int));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
for(k=0;k<p;k++)
{int t;
scanf("%i",&t);
a[i][j][k]=t;
}

printf("suma elementelor este %i",suma(a,m,n,p));


for(i=0;i<m;i++)
for(j=0;j<n;j++)
free(a[i][j]);
for(i=0;i<m;i++)
free(a[i]);
free(a);
}
Pentru inscriere completati formularul de grup tinta ( Apasa aici )
Lista cursurilor gratuite ( Apasa aici )
//functia pt gasirea elem minim si a primei poz d aparitie a acestuia;fct returneaza prin nume
valoarea minima din vector.
#include <stdio.h>
float minim_pozitie(float v[],int n,int *poz)
{ float min;
min=v[0];
*poz=0;
int i;
for(i=0;i<n;i++)
if(min>v[i])
{ min=v[i];
*poz=i;
}
return(min);
}
void main()
{float v[10];
int n,pozitie,i;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
printf("minimul este: %6.2f",minim_pozitie(v,n,&pozitie));
}
//calculati elem max din vect si pozitiile tuturor aparitiilor.
#include <stdio.h>
void maxim(float v[10],int n, float *max, int poz[10], int *nr_ap)
{ int i;
*max=v[0];
for(i=1;i<n;i++)
if (*max<v[i])
{*nr_ap=1;
poz[0]=i;
*max=v[i];
}
else if (*max==v[i])

{ poz[*nr_ap]=i;
(*nr_ap)++;
}
}
void main()
{float v[10],el_max;
int n,nr_aparitii,pozitii[10],i;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
maxim(v,n,&el_max,pozitii,&nr_aparitii);
printf("elem maxim este %6.2f si pozitiile de apatitie sunt ",el_max);
for(i=0;i<nr_aparitii;i++)
printf(" %i ",pozitii[i]);
}
//functie de inserarea unui 0 intre fiecare 2 elem ale unui vector.
#include <stdio.h>
void inserare(float v[20],int *n)
{ int i,j,k;
k=*n;
for(i=0;i<k-1;i++)
{ for(j=*n;j>2*i+1;j--) v[j]=v[j-1];
v[2*i+1]=0;
(*n)++;
}
}
void main()
{ float v[20];
int i,n;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
inserare(v,&n);
printf("noul vector este: ");
for(i=0;i<n;i++)
printf("%6.3f",v[i]);
}
//functie pt creara unui vector din elem unui vector dat,inserand cate un 0 intre fiecare 2 elem
ale acestuia.
#include <stdio.h>
void inserare(float v[20], int n,float v1[40], int *n1)
{ int i;
*n1=0;

for(i=0;i<n-1;i++)
{ v1[2*i]=v[i];
v1[2*i+1]=0;
(*n1)=(*n1)+2;
}
v1[*n1]=v[n-1];
(*n1)++;
}
void main()
{float v[20],v1[30];
int n,i,n1;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
inserare(v,n,v1,&n1);
printf("noul vector este: ");
for(i=0;i<n1;i++)
printf("%6.2f",v1[i]);
}
//sa se elimine dublurile dintr un vector;fct returneaza prin numele ei nr de elem ramase in
vector dupa eliminare.
#include <stdio.h>
int eliminare(float v[10],int *n)
{ int i,j,k;
for(i=0;i<*n-1;i++)
for(j=i+1;j<*n;j++)
if (v[i]==v[j])
{ for (k=j;k<*n-1;k++)
v[k]=v[k+1];
(*n)--;
j--;
}
return (*n);
}
void main()
{ float v[10];
int n,i;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
printf("dupa eliminare au mai ramas %i elemente",eliminare(v,&n));
}
//fct pt calculul amplitudinii elem unui vector;fct intoarce prin numele sau amplitudinea elem.

#include <stdio.h>
float amplitudine(float v[10],int n)
{ float min,max;
int i;
min=v[0];
max=v[0];
for(i=0;i<n;i++)
if (v[i]<min) min=v[i];
else if (v[i]>max) max=v[i];
return(max-min);
}
void main()
{float v[10];
int n,i;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
printf("amplitudinea este %6.2f",amplitudine(v,n));
}
//sa se sorteze un vector flosind metoda selectiei;fct nu intoarce nici un rez prin numele fct.
#include <stdio.h>
void selectie(float v[10],int n)
{ float aux;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (v[i]>v[j])
{aux=v[i];
v[i]=v[j];
v[j]=aux;
}
}
void main()
{float v[10];
int n,i;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
selectie(v,n);
printf("vectorul sortat crescator este:");
for(i=0;i<n;i++)
printf("%6.2f",v[i]);
}

//sa se sorteze un vector flosind metoda bulelor;fct nu intoarce nici un rez prin numele fct.
#include <stdio.h>
void bule(float v[10],int n)
{ float aux;
int i,p;
p=1;
while(p)
{ p=0;
for(i=0;i<n-1;i++)
if (v[i]>v[i+1])
{aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
p=1;
}
}
}
void main()
{float v[10];
int n,i;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
bule(v,n);
printf("vectorul sortat crescator este:");
for(i=0;i<n;i++)
printf("%6.2f",v[i]);
}
//fct pt interclasarea a 2 vectori ordonati crescator;nu se intoarce nici un rez prin numele fct.
#include <stdio.h>
void interclasare(float x[10],int n,float y[10],int m,float z[10],int *p)
{ int i=0,j=0;
*p=0;
while ((i<n)&&(j<m))
if (x[i]<y[j]) z[(*p)++]=x[i++];
else z[(*p)++]=y[j++];
if (i==n) for(i=j;i<m;i++) z[(*p)++]=y[i];
else for(j=i;j<n;j++) z[(*p)++]=x[j];
}
void main()
{ float x[10],y[10],z[10];
int n,m,i,p;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{ printf("x[%i]=",i);
scanf("%f",&x[i]);
}

printf("m=");scanf("%i",&m);
for(i=0;i<m;i++)
{printf("y[%i]=",i);
scanf("%f",&y[i]);
}
interclasare(x,n,y,m,z,&p);
for(i=0;i<p;i++)
printf("%6.2f",z[i]);
}
//fct pt calculul produsului scalar dintre 2 vectori;fct intoarce prin nume produsul scalar.
#include <stdio.h>
float produs_scalar(float x[10],int m,float y[10],int n,int *er)
{ float produs;
int i;
if (m!=n) *er=1;
else { *er=0;
produs=0;
for(i=0;i<m;i++)
produs+=x[i]*y[i];
}
return produs;
}
void main()
{float x[10],y[10],pr;
int m,n,i,er;
printf("m=");scanf("%i",&m);
for(i=0;i<m;i++)
{printf("x[%i]=",i);
scanf("%f",&x[i]);
}
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{printf("y[%i]=",i);
scanf("%f",&y[i]);
}
pr=produs_scalar(x,m,y,n,&er);
if (er==1) printf("vectorii nu au lungimi egale");
else printf("produsul scalar este %6.2f",pr);
}
//fct pt determinarea valorii unui polinom intr un punct dat;prin numele fct se intoarce
valoarea calculata.
#include <stdio.h>
float valoare_polinom(int n,float p[10],float x)
{ int i;
float k;
k=p[n];
for(i=n;i>0;i--)
k=k*x+p[i-1];

return k;
}
void main()
{float p[10],x;
int n,i;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
{printf("p[%i]=",i);
scanf("%f",&p[i]);
}
printf("x=");scanf("%f",&x);
printf("valoarea polinomului in punctul %6.2f este %6.2f",x,valoare_polinom(n,p,x));
}
//fct pt gasirea elem minime d p diagonalele principala respectiv secundara ale unei matrice;
prin numele fct se intoarce 1 dak matricea nu a fost patrata sau 0 in caz contrar.
#include <stdio.h>.
int minim(float a[10][20],int m,int n,float *min,float *min1)
{ int i,er;
if (m!=n) er=1;
else
{ *min=a[0][0];
*min1=a[0][m-1];
for(i=0;i<m;i++)
{ if (a[i][i]<*min) *min=a[i][i];
if (a[i][m-i-1]<*min1) *min1=a[i][m-i-1];
}
er=0;
}
return er;
}
void main()
{ float a[10][20],min_dp,min_ds;
int m,n,i,j,eroare;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ printf("a[%i,%i]=",i,j);
scanf("%f",&a[i][j]);
}
eroare=minim(a,m,n,&min_dp,&min_ds);
if (eroare==1) printf("matricea nu e patratica");
else printf("minimul de pe diagonala principala este %6.2f si cel de pe diagonala secundara
este %6.2f",min_dp,min_ds);
}
//fct pt calculul maximului din triunghiul de deasupra diagonalelor unei matrice patrate,
exclusiv diagonalele;fct intoarce prin numele ei valoarea ceruta.
#include<stdio.h>

float maxim(float a [10][20],int n)


{ int i,j;
float max;
max=a[0][1];
for(i=0;i<(n-1)/2;i++)
for(j=i+1;j<n-i-1;j++)
if(a[i][j]>max) max=a[i][j];
return max;
}
void main()
{ float a[10][20];
int n,i,j;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ printf("a[%i,%i]=",i,j);
scanf("%f",&a[i][j]);
}
printf("elementul maxim din triunghiul de deasupra diagonalelor este %6.2f",maxim(a,n));
}
//cate elem pozitive sunt in triunghiul de sub diagonalele unei matrice patratice exclusiv
diagonalele.
#include <stdio.h>
int nr_pozitive(float a[10][20],int n)
{ int i,j,nr_poz;
nr_poz=0;
for(i=n/2+1;i<n;i++)
for(j=n-i;j<i;j++)
if (a[i][j]>0) nr_poz+=1;
return nr_poz;
}
void main()
{ float a[10][20];
int n,i,j;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ printf("a[%i,%i]=",i,j);
scanf("%f",&a[i][j]);
}
printf("in triunghiul de sub diagonale sunt %i nr pozitive",nr_pozitive(a,n));
}
//elem minim din triunghiul din dreapta diagonalelor unei matrice patratice exclusiv
diagonalele.
#include <stdio.h>
float minim(float a[10][20],int n)
{ int i,j;
float min;

min=a[1][n-1];
for(i=n/2+1;i<n;i++)
for(j=n-i+1;j<i;j++)
if (a[j][i]<min) min=a[j][i];
return min;
}
void main()
{ float a[10][20];
int n,i,j;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ printf("a[%i,%i]=",i,j);
scanf("%f",&a[i][j]);
}
printf("minimul din triunghiul din dreapta diagonalelor este %6.2f ",minim(a,n));
}
//cate elem prime sunt in triunghiul din stanga diagonalelor unei matrice patratice exclusiv
diagonalele.
#include <stdio.h>
#include <math.h>
int prim(int x)
{ int d;
x=abs(x);
if ((x==0)||(x==1)) return 0;
int b=pow(x,0.5);
for(d=2;d<=b;d++)
if (x%d==0) return 0;
return 1;
}
int nr_prime(float a[10][20],int n)
{ int i,j,nr_pr;
nr_pr=0;
for(i=0;i<(n-1)/2;i++)
for(j=i+1;j<n-i-1;j++)
if (prim(a[j][i])==1) nr_pr+=1;
return nr_pr;
}
void main()
{ float a[10][20];
int n,i,j;
printf("n=");scanf("%i",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ printf("a[%i,%i]=",i,j);
scanf("%f",&a[i][j]);
}
printf("in triunghiul din stanga diagonalelor sunt %i nr prime",nr_prime(a,n));
}

10

//fct pt determinarea liniilor unei matrice care au elementele in ordine strict crescatoare.
#include <stdio.h>
void linii_crescator(float a[10][20],int m,int n,int l[10], int *p)
{ int i,j,k;
*p=0;
for(i=0;i<m;i++)
{ k=1;
for(j=0;j<n-1;j++)
if (a[i][j]>=a[i][j+1]) k=0;
if (k) l[(*p)++]=i;
}
}
void main()
{float a[10][20];
int m,n,i,j,p,l[10];
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{printf("a[%i,%i]=",i,j);
scanf("%f",&a[i][j]);
}
linii_crescator(a,m,n,l,&p);
if (p==0) printf("nu exista linii cu elemente strict crescatoare");
else for(i=0;i<p;i++) printf("%i ",l[i]);
}
//sortare crescator a elem d p diagonala principala prin interschimbari d linii si coloane.
#include <stdio.h>
#include <malloc.h>
void ordonare(float **a,int n)
{ int i,j,k,l1,l2;
float aux;
do
{k=0;
for(i=0;i<n-1;i++)
if (a[i][i]>a[i+1][i+1])
{ l1=i;
l2=i+1;
k=1;
for(j=0;j<n;j++)
{ aux=a[l1][j];
a[l1][j]=a[l2][j];
a[l2][j]=aux;
}
for(j=0;j<n;j++)
{ aux=a[j][l1];
a[j][l1]=a[j][l2];

11

a[j][l2]=aux;
}
}
} while (k);
}
void main()
{float **a;
int n,i,j;
printf("n=");scanf("%i",&n);
a=(float**)malloc(n*sizeof(float*));
for(i=0;i<n;i++)
a[i]=(float*)malloc(n*sizeof(float));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ float t;
printf("a[%i,%i]=",i,j);
scanf("%f",&t);
a[i][j]=t;
}
ordonare(a,n);
printf("matricea cu diagonala principala ordonata crescator este \n");
for(i=0;i<n;i++)
{ for(j=0;j<n;j++) printf("%6.2f",a[i][j]);
printf("\n");
}
for(i=0;i<n;i++) free(a[i]);
free(a);
}
//sa s verifice dak o matrice este tringhiulara superior.
#include <stdio.h>
#include <malloc.h>
int verificare(float **a,int n)
{ int i,j,ts;
ts=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if (a[i][j]!=0) ts=1;
return ts;
}
void main()
{float **a;
int n,i,t_sup,j;
printf("n=");scanf("%i",&n);
a=(float**)malloc(n*sizeof(float*));
for(i=0;i<n;i++)
a[i]=(float*)malloc(n*sizeof(float));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ float t;

12

printf("a[%i,%i]=",i,j);
scanf("%f",&t);
a[i][j]=t;
}
t_sup=verificare(a,n);
if (t_sup==1) printf("matricea nu e triunghiulara superior");
else printf("matricea e triunghiulara superior");
for(i=0;i<n;i++) free(a[i]);
free(a);
}
//sa se determine maximul d p fiecare linie a unei matrice.
#include <stdio.h>
#include <malloc.h>
void max_linie(float **a,int m, int n,float max[])
{ int i,j;
for(i=0;i<m;i++)
{max[i]=a[i][0];
for(j=0;j<n;j++)
if (a[i][j]>max[i]) max[i]=a[i][j];
}
}
void main()
{ float **a,max[20];
int m,n,i,j;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
a=(float**)malloc(m*sizeof(float*));
for(i=0;i<m;i++)
a[i]=(float*)malloc(n*sizeof(float));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ float t;
printf("a[%i,%i]=",i,j);
scanf("%f",&t);
a[i][j]=t;
}
max_linie(a,m,n,max);
for(i=0;i<m;i++) printf("%6.2f",max[i]);
for(i=0;i<m;i++) free(a[i]);
free(a);
}
//determinarea produsului vectorial dintre fiecare 2 linii ale unei matrice dreptunghiulare.
#include <stdio.h>
#include <malloc.h>
void produs_vectorial(float **a,int m,int n,float m_vect[][20],int *k)
{ int i,j,p;
*k=0;
for(i=0;i<m-1;i++)

13

for(j=i+1;j<m;j++)
{ for(p=0;p<n;p++) m_vect[*k][p]=a[i][p]*a[j][p];
(*k)++;
}
}
void main()
{float **a,m_vect[20][20];
int m,n,i,j,k;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
a=(float**)malloc(m*sizeof(float*));
for(i=0;i<m;i++)
a[i]=(float*)malloc(n*sizeof(float));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ float t;
printf("a[%i,%i]=",i,j);
scanf("%f",&t);
a[i][j]=t;
}
produs_vectorial(a,m,n,m_vect,&k);
for(i=0;i<k;i++)
{ for(j=0;j<n;j++) printf("%6.2f",m_vect[i][j]);
printf("\n");
}
}
//pt fiecare linie a unei matrice sa se calculeze produsul dintre cel mai mare si cel mai mic
element.
#include<stdio.h>
#include<malloc.h>
void produs(float **a,int m,int n,float pr[])
{ float min,max;
int i,j;
for(i=0;i<m;i++)
{min=a[i][0];
max=a[i][0];
for(j=0;j<n;j++)
{ if (a[i][j]<min) min=a[i][j];
if (a[i][j]>max) max=a[i][j];
}
pr[i]=min*max;
}
}
void main()
{float **a,pr[20];
int m,n,i,j;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
a=(float**)malloc(m*sizeof(float*));

14

for(i=0;i<m;i++)
a[i]=(float*)malloc(n*sizeof(float));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ float t;
printf("a[%i,%i]=",i,j);
scanf("%f",&t);
a[i][j]=t;
}
produs(a,m,n,pr);
for(i=0;i<m;i++) printf("%8.2f",pr[i]);
}
//sa se determine coloanele care au elementele in progresie aritmetica.
#include <stdio.h>
#include <malloc.h>
void coloane(float **a,int m,int n,int col[],int *k)
{ int i,j,p,verific;
float ratie;
*k=0; verific=0;
for(j=0;j<n;j++)
{ ratie=a[1][j]-a[0][j];
for(i=1;i<m;i++)
if (a[i][j]-a[i-1][j]!=ratie) verific=1;
if (verific==0) col[(*k)++]=j;
}
}
void main()
{float **a;
int m,n,i,j,col[20],k;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
a=(float**)malloc(m*sizeof(float*));
for(i=0;i<m;i++)
a[i]=(float*)malloc(n*sizeof(float));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ float t;
printf("a[%i,%i]=",i,j);
scanf("%f",&t);
a[i][j]=t;
}
coloane(a,m,n,col,&k);
for(i=0;i<k;i++) printf("%i",col[i]);
}
//transpusa unei matrice;masivele sunt alocate dinamic.
#include <stdio.h>
#include <malloc.h>
void main()

15

{ float **a,**b;
int n,m,i,j;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
a=(float**) malloc(m*sizeof(float*));
for (i=0;i<m;i++)
a[i]=(float*) malloc (n*sizeof(float));
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{ float t;
scanf("%f",&t);
a[i][j]=t;
}
b=(float**) malloc(n*sizeof(float*));
for (i=0;i<m;i++)
b[i]=(float*) malloc (m*sizeof(float));
for(i=0;i<n;i++)
for(j=0;j<m;j++)
b[i][j]=a[j][i];
for(i=0;i<n;i++)
{ for(j=0;j<m;j++)
printf("%6.2f",b[i][j]);
printf("\n");
}
for (i=0;i<m;i++) free(a[i]);
free(a);
for (i=0;i<n;i++) free(b[i]);
free(b);
}
//pozitia de aparitie a unui elem intr un vect mem dinamic.
#include <stdio.h>
#include <malloc.h>
void main()
{ float *v,el;
int i,n;
printf("n=");scanf("%i",&n);
v=(float*) malloc (n*sizeof(float));
for(i=0;i<n;i++)
{ printf("v[%i]=",i);
scanf("%f",&v[i]);
}
printf("elementul este:");scanf("%f",&el);
int gasit=0;
for(i=0;(i<n)&&(gasit==0);i++)
if (v[i]==el) gasit=1;
if (gasit) printf("%i",i-1);
else printf("nu se gaseste in vector");
free(v);
}

16

//calc matricea produs dintre 2 matrice alovcate dinamic.


#include <stdio.h>
#include <malloc.h>
float **inmultire(float **a,float **b,int m,int n,int p)
{float **c;
int i,j,k;
c=(float**) malloc(m*sizeof(float*));
for (i=0;i<m;i++)
c[i]=(float*)malloc(p*sizeof(float));
for (i=0;i<m;i++)
for(j=0;j<p;j++)
{ c[i][j]=0;
for(k=0;k<n;k++)
c[i][j]+=a[i][k]*b[k][j];
}
return c;
}
void main()
{ float **a,**b,**c;
int m,n,i,j,p;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
printf("p=");scanf("%i",&p);
a=(float**)malloc(m*sizeof(float*));
for(i=0;i<m;i++)
a[i]=(float*)malloc(n*sizeof(float));
float t;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ scanf("%f",&t);
a[i][j]=t;
}
b=(float**)malloc(n*sizeof(float*));
for (i=0;i<n;i++)
b[i]=(float*)malloc(p*sizeof(float));
for(i=0;i<n;i++)
for(j=0;j<p;j++)
{ scanf("%f",&t);
b[i][j]=t;
}
c=inmultire(a,b,m,n,p);
for(i=0;i<m;i++)
{ for(j=0;j<p;j++)
printf("%6.3f ",c[i][j]);
printf("\n");
}
for(i=0;i<m;i++) free(a[i]);
free(a);
for(i=0;i<n;i++) free(b[i]);

17

free(b);
for(i=0;i<m;i++) free(c[i]);
free(c);
}
//calculul tuturor poz de aparitie ale unui elem dat intr o matrice alocata dinamic.
#include <stdio.h>
#include <malloc.h>
int **aparitii(float a[10][20],int m,int n,float k, int *ptdim)
{ int i,j;
int **mat;
mat=(int**)malloc(2*sizeof(int*));
for (i=0;i<2;i++)
mat[i]=(int*)malloc((m*n)*sizeof(int));
*ptdim=0;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
if(a[i][j]==k)
{ mat[0][*ptdim]=i;
mat[1][*ptdim]=j;
(*ptdim)++;
}
return mat;
}
void main()
{ float a[10][20],k;
int m,n,i,j;
printf("m=");scanf("%i",&m);
printf("n=");scanf("%i",&n);
printf("k=");scanf("%f",&k);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{ printf("a[%i][%i]=",i,j);
scanf("%f",&a[i][j]);
}
int **x,d;
x=aparitii(a,m,n,k,&d);
if (d==0) printf("elementul nu s gaseste");
else for(j=0;j<d;j++)
printf("(%i,%i)",x[0][j],x[1][j]);
for(i=0;i<2;i++) free(x[i]);
free(x);
}

18

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

  • Prezentare Licenta Marius
    Prezentare Licenta Marius
    Document11 pagini
    Prezentare Licenta Marius
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Reguli Nemuritoare Pentru Un Stil Impecabil
    Reguli Nemuritoare Pentru Un Stil Impecabil
    Document2 pagini
    Reguli Nemuritoare Pentru Un Stil Impecabil
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Tematica Bibliografie Licenta Iulie 2013
    Tematica Bibliografie Licenta Iulie 2013
    Document8 pagini
    Tematica Bibliografie Licenta Iulie 2013
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Licenta
    Licenta
    Document19 pagini
    Licenta
    Gyone Adrian
    Încă nu există evaluări
  • Curs Web Design
    Curs Web Design
    Document6 pagini
    Curs Web Design
    nicanida57
    Încă nu există evaluări
  • Curs Web Design
    Curs Web Design
    Document6 pagini
    Curs Web Design
    nicanida57
    Încă nu există evaluări
  • Seminarii HTML5
    Seminarii HTML5
    Document2 pagini
    Seminarii HTML5
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Licenta Word 2011
    Licenta Word 2011
    Document89 pagini
    Licenta Word 2011
    Catelina Elena
    Încă nu există evaluări
  • INVESTITIA
    INVESTITIA
    Document26 pagini
    INVESTITIA
    Alina Pusderca
    Încă nu există evaluări
  • Teme Proiecte Ec2 2012
    Teme Proiecte Ec2 2012
    Document1 pagină
    Teme Proiecte Ec2 2012
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Cap 5
    Cap 5
    Document14 pagini
    Cap 5
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Macroeconomie
    Macroeconomie
    Document5 pagini
    Macroeconomie
    lordiuly
    Încă nu există evaluări
  • INVESTITIA
    INVESTITIA
    Document26 pagini
    INVESTITIA
    Alina Pusderca
    Încă nu există evaluări
  • Teme Proiecte Ec2 2012
    Teme Proiecte Ec2 2012
    Document1 pagină
    Teme Proiecte Ec2 2012
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Teme Proiecte Ec2 2012
    Teme Proiecte Ec2 2012
    Document1 pagină
    Teme Proiecte Ec2 2012
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Analiza Bilantiera OMV Petrom
    Analiza Bilantiera OMV Petrom
    Document12 pagini
    Analiza Bilantiera OMV Petrom
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • MOTIVATIE
    MOTIVATIE
    Document10 pagini
    MOTIVATIE
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Practica - Felea-Gheorghies
    Practica - Felea-Gheorghies
    Document104 pagini
    Practica - Felea-Gheorghies
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Petrom
    Petrom
    Document1 pagină
    Petrom
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Petrom
    Petrom
    Document1 pagină
    Petrom
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Cum Sa Citim Mai Bine Si Mai Rapid
    Cum Sa Citim Mai Bine Si Mai Rapid
    Document2 pagini
    Cum Sa Citim Mai Bine Si Mai Rapid
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Încearcă Să Nu Fii Un Om de Succes
    Încearcă Să Nu Fii Un Om de Succes
    Document1 pagină
    Încearcă Să Nu Fii Un Om de Succes
    Almajanu Bogdan Claudiu
    Încă nu există evaluări
  • Petrom
    Petrom
    Document1 pagină
    Petrom
    Almajanu Bogdan Claudiu
    Încă nu există evaluări