Sem 1 / Examen / Programare C: prob 10-3
6-2
Folosind pointeri, aflaţi produsul elementelor pare ale unui şir de numere întregi.
#include
void main(void)
{int v[10]={1,2,4,5,6,7,8,9,12}, p=0,i;
for(i=0;i<10;i++)
if(v[i]%2!=0) p=p*v[i];
printf("produsul numerelor pare este %d",p);
getch();
}
6-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An. Aflaţi intersecţia acestor
mulţimi.
#include
#include
void main(void)
{int n,i, max, min, a[20][2];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
max=a[0][0];
for (i=0;i<=n;i++)
if (maxmin=a[0][1];
for (i=0;i<=n;i++)
if (min>a[i][1]) min=a[i][1];
if(max>min) printf("intersectie vida")
else for (i=max; i<=min; i++)
printf("la intersectie obtinem multimea\t%d",i);
getch();
}
7-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An. Aflaţi reuniunea acestor
mulţimi.
#include
#include
void main(void)
{int n,i, max, min, a[20][2];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
min=a[0][0];
for (i=0;i<=n;i++)
if (min>a[i][0]) min=a[i][0];
max=a[0][1];
for (i=0;i<=n;i++)
if (max
for (i=min; i<=max; i++)
printf("in reuniune obtinem multimea\t%d",i);
getch();
}
8-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An.care au cel puţin un punct comun. Verificaţi
dacă aceste mulţimi sunt incluse una în alta, adică A1 Í A2 Í A3 Í ... Í An.
#include
#include
void main(void)
{int n,i, k, k1, a[20][2];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
k=0;
for (i=0;i<=n-1;i++)
if (a[i][0]<=a[i+1][0]) k=1;
k1=0;
for (i=0;i<=n-1;i++)
if (a[i][1]>=a[i+1][1]) k1=1;
if(k==0)&&(k1==0) printf("multimile sint incluse una in alta")
else printf("multimile nu sint incluse una in alta");
getch();
}
9-2
Folosind pointeri, determinaţi elementul maxim dintr-un vector.
#include
void main(void)
{int a[6]={14,2,22,41,13,16},*t,i;
t=a;
for (i=0;i<7;i++)
if(*t<*(a+i)) t=a+i;
printf("numarul cel mai mare este %d",*t);
getch();
}
9-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An. Aranjaţi aceste mulţimi în
ordinea descrescătoare după numărul de elemente.
#include
#include
void main(void)
{int n,i,j,max,k,a[20][2],b[20];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
for (i=0;i<=n;i++)
b[i]=a[i][1])-a[i][0]+1;
for (j=0;j<=n;j++)
{max=b[0];k=0;
for (i=0;i<=n;i++)
if(max
b[k]=0;
for (i=a[k][0];iprintf("multimea cu numar de elemente maximal este\t%d",a[k][i]);}
getch();
}
10-3
Fie o matrice m*m. Aflaţi produsul scalar al diagonalei principale cu diagonala secundară.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
for(i=0;is+=a[i][i]*a[i][m-i+1];
printf("produsul scalar este %d",s);
getch();
}
Folosind pointeri, aflaţi produsul elementelor pare ale unui şir de numere întregi.
#include
void main(void)
{int v[10]={1,2,4,5,6,7,8,9,12}, p=0,i;
for(i=0;i<10;i++)
if(v[i]%2!=0) p=p*v[i];
printf("produsul numerelor pare este %d",p);
getch();
}
6-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An. Aflaţi intersecţia acestor
mulţimi.
#include
#include
void main(void)
{int n,i, max, min, a[20][2];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
max=a[0][0];
for (i=0;i<=n;i++)
if (maxmin=a[0][1];
for (i=0;i<=n;i++)
if (min>a[i][1]) min=a[i][1];
if(max>min) printf("intersectie vida")
else for (i=max; i<=min; i++)
printf("la intersectie obtinem multimea\t%d",i);
getch();
}
7-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An. Aflaţi reuniunea acestor
mulţimi.
#include
#include
void main(void)
{int n,i, max, min, a[20][2];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
min=a[0][0];
for (i=0;i<=n;i++)
if (min>a[i][0]) min=a[i][0];
max=a[0][1];
for (i=0;i<=n;i++)
if (max
for (i=min; i<=max; i++)
printf("in reuniune obtinem multimea\t%d",i);
getch();
}
8-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An.care au cel puţin un punct comun. Verificaţi
dacă aceste mulţimi sunt incluse una în alta, adică A1 Í A2 Í A3 Í ... Í An.
#include
#include
void main(void)
{int n,i, k, k1, a[20][2];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
k=0;
for (i=0;i<=n-1;i++)
if (a[i][0]<=a[i+1][0]) k=1;
k1=0;
for (i=0;i<=n-1;i++)
if (a[i][1]>=a[i+1][1]) k1=1;
if(k==0)&&(k1==0) printf("multimile sint incluse una in alta")
else printf("multimile nu sint incluse una in alta");
getch();
}
9-2
Folosind pointeri, determinaţi elementul maxim dintr-un vector.
#include
void main(void)
{int a[6]={14,2,22,41,13,16},*t,i;
t=a;
for (i=0;i<7;i++)
if(*t<*(a+i)) t=a+i;
printf("numarul cel mai mare este %d",*t);
getch();
}
9-3
Fie n mulţimi de numere naturale consecutive A1, A2, A3, ..., An. Aranjaţi aceste mulţimi în
ordinea descrescătoare după numărul de elemente.
#include
#include
void main(void)
{int n,i,j,max,k,a[20][2],b[20];
printf("numarul de multimi\t");
scanf("%d",&n);
for (i=0;i<=n;i++)
{printf("\nprimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][0]);
printf("\nultimul element al multimii %d:\t",i+1);
scanf("%d",&a[i][1]);}
for (i=0;i<=n;i++)
b[i]=a[i][1])-a[i][0]+1;
for (j=0;j<=n;j++)
{max=b[0];k=0;
for (i=0;i<=n;i++)
if(max
b[k]=0;
for (i=a[k][0];iprintf("multimea cu numar de elemente maximal este\t%d",a[k][i]);}
getch();
}
10-3
Fie o matrice m*m. Aflaţi produsul scalar al diagonalei principale cu diagonala secundară.
#include
#include
void main(void)
{int a[10][10],m,i,j,s=0;
printf("valoarea lui m\t%d",m);
scanf("%d",&m);
for(i=0;i
for(i=0;i
printf("produsul scalar este %d",s);
getch();
}