Professional Documents
Culture Documents
#include<stdio.h>
#include<stdlib.h>
void cit_vect(int v[10],int dim)
{
int i;
for(i=0;i<dim;i++){printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
}
void afisare_vect(int v[10],int dim)
{
int i;
for(i=0;i<dim;i++)printf("\nv[%d]=%d",i,v[i]);
}
int main()
{
int n,a[10],b[10],c[10],i,j=0,k=0;
printf("n= ");
scanf("%d",&n);
cit_vect(a,n);
for(i=0;i<n;i++)if(a[i]%2==0){b[j]=a[i];
j++;}
else{c[k]=a[i];
k++;}
afisare_vect(a,n);
printf("\n");
afisare_vect(b,j);
printf("\n");
afisare_vect(c,k);
printf("\n");
system("PAUSE");
return 0;
}
2. Reluati programul anterior, dar pentru formarea vectorilor scrieti si utilizati doua
functii avand prototipurile : int pare(int v[10],int par_v[10]) si int impare(int v[10],int
impar_v[10])
#include<stdio.h>
#include<stdlib.h>
void cit_vect(int v[10],int dim)
{
int i;
for(i=0;i<dim;i++){printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
}
void afisare_vect(int v[10],int dim)
{
int i;
for(i=0;i<dim;i++)printf("\nv[%d]=%d",i,v[i]);
}
int n;
int pare(int v[10],int par_v[10])
{
int i,j;
for(i=0;i<n;i++)if(v[i]%2==0)j++;
return j;
}
int impare(int v[10],int impar_v[10])
{
int i,k=0;
for(i=0;i<n;i++)if(v[i]%2!=0)k++;
return k;
}
int main()
{
int a[10],j,k,b[10],c[10],i;
printf("n= ");
scanf("%d",&n);
cit_vect(a,n);
j=pare(a,b);
k=impare(a,c);
printf("\nin vector sunt %d numere pare ",j);
printf("\nin vector sunt %d numere impare\n ",k);
k=0;j=0;
for(i=0;i<n;i++)if(a[i]%2==0){b[j]=a[i];
j++;}
else{c[k]=a[i];
k++;}
afisare_vect(a,n);
printf("\n");
afisare_vect(b,j);
printf("\n");
afisare_vect(c,k);
printf("\n");
system("PAUSE");
return 0;
}
3. Scrieti un program care calculeaza suma complexa a elementelor dintr-un tablou
unidimensional de numere complexe
a) b) #include<stdio.h>
#include<stdlib.h>
typedef struct{
float re;
float im;
}complex;
complex v[10];
int main(){
int i,n;
float x=0,y=0;
printf("n= "); scanf("%d",&n);
for(i=0;i<n;i++){printf(" Re(v[%d])= ",i);
scanf("%f",&v[i].re);
printf(" Im(v[%d])= ",i);
scanf("%f",&v[i].im); }
for(i=0;i<n;i++){x+=v[i].re;
y+=v[i].im;}
printf("\n Suna numerelor din vector este %.1f+%.1fi.",x,y);
printf("\n");
system("PAUSE");
return 0;
}
c) #include<stdio.h>
#include<stdlib.h>
typedef struct{
float re;
float im;
}complex;
complex v[10];
float suma_re(complex a,complex b)
{int s;s=a.re+b.re;
return s;}
float suma_im(complex a,complex b)
{int s;s= a.im+b.im;
return s;}
int main(){
int i,n;
complex x;
x.re=0;x.im=0;
printf("n= "); scanf("%d",&n);
for(i=0;i<n;i++){printf(" Re(v[%d])= ",i);
scanf("%f",&v[i].re);
printf(" Im(v[%d])= ",i);
scanf("%f",&v[i].im);
}
for(i=0;i<n;i++){x.re=suma_re(x,v[i]);
x.im=suma_im(x,v[i]);}
printf("\n Suna numerelor din vector este %.1f+%.1fi.",x.re,x.im);
printf("\n");
system("PAUSE");
return 0;
}
4. Reluati programul anterior dar pentru calculul sumei a doua numere complexe
scrieti si utilizati o functie avand prototipul : complex suma (complex a,complex b)
#include<stdio.h>
#include<stdlib.h>
typedef struct{
float re;
float im;
}complex;
complex x,y;
complex s;
complex suma(complex a,complex b)
{ complex s;
s.re=a.re+b.re;
s.im=a.im+b.im;
printf("\n Suna numerelor din vector este %.1f+%.1fi.",s.re,s.im);
}
int main(){
printf("Partea reala a numarului x este :");
scanf("%f",&x.re);
printf("Partea imaginara a numarului x este :");
scanf("%f",&x.im);
printf("Partea reala a numarului y este :");
scanf("%f",&y.re);
printf("Partea imaginara a numarului y este :");
scanf("%f",&y.im);
suma(x,y);
printf("\n");
system("PAUSE");
return 0;
}
#include<stdlib.h>
#include<stdio.h>
int n,m[100][100],v[100];
float max_vector(int dim, float vec[100])
{int i,max=m[dim][0];
for(i=0;i<n;i++)if(m[dim][i]>max)max=m[dim][i];
return max; }
int main()
{ int i,j,max;
printf("Introduceti ordinul matricei:");
scanf("%d", &n);
for(i=0;i<n;i++)
for(j=0;j<n;j++){printf("m[%d][%d]=", i,j); scanf("%d", &m[i][j]); }
for(i=0;i<n;i++)printf("Maximul de pe linia %d este: %.2f .\n", i,max_vector(i,v));
system("pause");
return 0; }
#include<stdlib.h>
#include<stdio.h>
int halberstam(int numar)
{int var,i=1;
var=numar;
while(var!=1){if(var%2==0)var=var/2;
else {var=var/3;
var++; }
printf("S%d= %d\n",i,var);
i++; }
return 0; }
int main()
{int a;
printf("Introduceti pe a:");
scanf("%d", &a);
halberstam(a);
system("pause");
return 0;
}
#include<stdlib.h>
#include<stdio.h>
int ok(char s[])
{char a[2];
printf("%s\n", s);
scanf("%c", &a[1]);
while(a[1]!='d' && a[1]!='n') scanf("%c", &a[1]);
if(a[1]=='d')return 1;
if(a[1]=='n') return 0; }
int main()
{int x;
char q[]="Ai fost la cumparaturi?";
x=ok(q);
if(x==1) printf("Ati raspuns ""Da"" .\n");
else printf("Ati raspuns ""Nu"" .\n ");
system("pause");
return 0; }
#include<stdlib.h>
#include<stdio.h>
float suma_de_plata(int ore, float salariu)
{float suma; if(ore<40)
suma=salariu;
else if(ore>40 && ore<60)suma=salariu*1.5;
else suma=salariu*2;
return suma; }
int main()
{int h;
float sal;
printf("Introduceti numarul de ore:");
scanf("%d", &h);
printf("Introduceti salariul minim:");
scanf("%f", &sal);
printf("Suma de plata este:%.1f RON.", suma_de_plata(h,sal));
system("pause");
return 0; }
9. Scrieti o functie care cauta toate spatiile dintr-un sir de caractere si le inlocuiste cu
semnul -returnand numarul de spatii inlocuit.
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int p;
int inlocuieste(char sir[])
{int i,nr=0;
for(i=0;i<p;i++) {if(sir[i]==' '){sir[i]='-';
nr++;}
}
return nr; }
int main()
{char msg[100];
gets( msg);
p=strlen(msg);
printf("Numarul de spatii inlocuit este: %d\n", inlocuieste(msg));
system("pause");
return 0; }
10. Scrieti o functie care afiseaza sirul de character primit ca parametru si apoi il
subliniaza scriind nr corespunzator de caractere _ pe randul urmator.
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int strlen(char s[])
{int i,nr=0;
for(i=0;;i++)while(s[i]!=NULL)nr++;
return nr;}
int main()
{int i,dim;
char sir[100];
scanf("%s", sir);
printf("\n");
dim=strlen(sir);
for(i=0;i<dim;i++)printf("_");
printf("%d",dim);
system("pause");
return 0; }