You are on page 1of 10

/p3.

1
//urmatorul program ilustreaza utilizarea tipurilor fundamentale de date in C

#include<stdio.h>
#include<stdlib.h>
int main() {
long int i=66000;
unsigned short int u;
double x, y;
char b_mic, b_mare, ch;

u=66000;
printf("%ld\t%hu\n\n",i,u);

x=12.3468, y=11.2e-2;
printf("x=%f sau %6.3f sau %e\n", x,x, x);
printf("y=%f sau %8.4f sau %E\n", y,y, y);

b_mic='b', b_mare='B', ch='m';
printf("Codurile ASCII pentru 'b' si 'B' sunt: %d, %d\n", b_mic, b_mare);
printf("Dupa '%c' urmeaza '%c'\n", b_mic, b_mic +1);
printf("Majuscula corespunzatoare lui '%c' este '%c'", ch, ch- 'a' + 'A');
printf("\n");
system("PAUSE");
return 0;
}

//p3.2
//scrieti un program care afiseaza codul ASCII al unui caracter citit de la tastatura

#include <stdio.h>
#include<stdlib.h>
int main() {
char ch;
printf ("Introduceti un caracter: ");
ch=getchar();
printf("\nCaracterul %c are codul ASCII %3d", ch, ch);
printf("\n");
system ("PAUSE");
return 0;
}
//p3.3
//scrieti un program care aduna si inmulteste 2 nr. complexe exprimate sub forma z1=a+bi
// z2=c+di(se citesc efectiv a,b,c,d-nr.reale)
//indicatie: (a+bi)+(c+di)=(a+c)+(b+d)i
// (a+bi)(c+di)=(ac-bd)+(ad+bc)i
#include <stdio.h>
#include <stdlib.h>
int main() {
float a, b, c, d;
printf("Introduceti z1: ");
scanf("%f %f", &a, &b);
printf("Ati introdus z1= %f + %fi",a,b);
printf("\nIntroduceti z2: ");
scanf("%f %f", &c, &d);
printf("Ati introdus z2=%f+%fi",c,d);
printf("\nz1+z2=%f+ %fi", a+c, b+d);
printf("\nz1*z2=%f+ %fi", a*c-b*d, a*d+b*c);
printf("\n");

system("PAUSE");
return 0;


}
//pp 2
//scrieti un program care citeste pe n intreg si afiseaza valoarea expresiei
// n/(n+1) cu 4 zecimale

#include<stdio.h>
#include<stdlib.h>

int main()
{
int n;
float k;

printf("introduceti primul nr n=");
scanf("%d",&n);
k=(float)n/(n+1);
printf("%.4f=%d/%d\n",k,n,n+1);
printf("\n");
system("PAUSE");
return 0;
}
//propus 4.2
//scrieti un program care calculeaza si afiseaza radacina ecuatiei de gradul 1
//cu coeficienti reali ax+b=0(coeficientii sunt cititi de la tastatura);discutie
//indicatie:ec. are sol daca a<>0;daca a=0:daca b=0 ec=nedeterminata,iar daca b<>0
//ec nu are solutie


#include<stdlib.h>
#include<stdio.h>
int main()
{ float a,b,x;
printf("introduceti a: ");
scanf("%f", &a);
printf("introduceti b: ");
scanf("%f", &b);
if(a!=0)
printf("Ecuatia are solutia: %f", (-b)/a);
else
if(b==0)
printf("Ecuatia este nedeterminata");
else
printf("Ecuatia nu are solutie");
system ("PAUSE");
return 0;
}
//propus 4.3
//folosind instructiuni de decizie,scrieti un program care citeste de la tastatura un
//nr. intreg x si afiseaza o valoare y calculata astfel:
// -x+3,pt x<0
//y= 3 ,pt 0<=x<=4
// 3x-9,pt x>4

#include<stdlib.h>
#include<stdio.h>
int main()
{ int x,y;
printf("introduceti x: ");
scanf("%d", &x);
if((x>=0)&&(x<=4))
printf("solutia ecuatiei este 3");
else
if(x<0)
printf("solutia ecuatiei este %d", (-x)+3);
else
printf("solutia ecuatiei este %d", 3*x-9);
system ("PAUSE");
return 0;
}
//propus 4.5
//scrieti un program care sa calculeze si sa afiseze maximul si minimul dintre 3
//nr intregi citite de la tastatura, utilizand operatorul conditional


#include<stdlib.h>
#include<stdio.h>
int main()
{ int a,b,c,min,max;
printf("introduceti a: ");
scanf("%d", &a);
printf("introduceti b: ");
scanf("%d", &b);
printf("introduceti c: ");
scanf("%d", &c);

if((a==b)&&(b==c))
printf("toate cele 2 nr sunt egale");
else
if(a<b)
{min=a;
if(min<c)
{ printf("minimul este %d",a);
printf("maximul este %d",c);}
}
else
if (a>c)
printf("minimul este %d iar maximul este %d",c,a);
system ("PAUSE");
return 0;
}
//6.1
//scrieti un program care citeste de la tastatura un vector de maxim 10 elemente
//intregi impreuna cu dimensiunea efectiva si apoi afiseaza elementele sale.
//precizare:intrucat la rularea programului nu este cunoscut inca de la inceput
//nr. de elemente(<10) se va opta pt. citirea la inceput a nr. de elemente

#include<stdio.h>
#include<stdlib.h>
int main(){
int v[10],n,i;
printf("introduceti nr. de elemente: ");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
printf("valorile citite sunt:\n");
for(i=0;i<n;i++)
printf("v[%d]=%d\n",i,v[i]);
system("PAUSE");
return 0;
}
//6.2
//scrieti un program care citeste un vector de elemente intregi , impreuna cu
//dimensiunea sa efectiva, afiseaza in ordine inversa elementele vectorului si
//calculeaza media aritmetica a elemetelor sale

#include<stdio.h>
#include<stdlib.h>
int main(){
int v[10],n,i,s=0;
float m;
printf("introduceti n: ");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
for(i=n-1;i>=0;i--)
{
printf("%d\t",v[i]);
s+=v[i];
}
m=(float)s/n;
printf("\tma= %.2f\n",m);
system("PAUSE");
return 0;
}
//6.3
//scrieti un program care citeste un vector de elemente intregi, impreuna cu
//dimensiunea sa efectiva si determina maximul si minimul dintre elementele
//acestui vector

#include<stdio.h>
#include<stdlib.h>
int main(){
int v[20],n,i,max,min;
float m;
printf("introduceti numarul de elemente din vector: ");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
min=max=v[0];
for(i=1;i<n;i++){
if(v[i]>=max)
max=v[i];
if(v[i]<=min)
min=v[i];
}
printf("max=%d\tmin=%d\n",max,min);
system("PAUSE");
return 0;
}
//6.4
//scrieti un program care citeste un vector de elemente intregi, impreuna cu
//dimensiunea sa efectiva, ordoneaza crescator elementele vectorului si apoi
//afiseaza vectorul ordonat.se va utiliza metoda de ordonare/sortare "bubble-sort"


#include<stdio.h>
#include<stdlib.h>
int main(){
int v[20],n,i,ind,tmp;
printf("introduceti numarul de elemente din vector: ");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("v[%d]= ",i);
scanf("%d",&v[i]);
}
//do{
// ind=0;
for(i=0;i<n-1;i++){
if(v[i]>v[i+1]){
tmp=v[i];
v[i]=v[i+1];
v[i+1]=tmp;
// ind=1;
}
}
//} while(ind);
for(i=0;i<n;i++)
printf("v[%d]=%d\n",i,v[i]);
system("PAUSE");
return 0;
}
#include<stdlib.h>
#include<stdio.h>
int main()
{int v[50],i,n,k;
printf("introduceti numarul de elemente:");
scanf("%d",&n);
k=0;
for(i=0;i<n;i++)
{printf("v[%d]=",i);
scanf("%d",&v[i]);}
for(i=0;i<n;i++)
{if(v[i]%2==1)
k++;}
printf(" sunt %d numere impare",k);
system("PAUSE");
return 0;}
2. Scriei un program care citete de la tastatur doi vectori de maximum 100 de elemente ntregi (numrul
elementelor poate fi diferit) apoi determin i afieaz intersecia celor doi vectori (adic elementele comune
celor doi vectori).
#include<stdio.h>
#include<stdlib.h>
int main()
{int v1[100],v2[100],i,j,n,m,p;
printf("introduceti numerele de elemente:");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("v1[%d]=",i);
scanf("%d",&v1[i]);}
printf("introduceti numerele de elemente pt vector 2:");
scanf("%d",&m);
for(j=0;j<m;j++)
{
printf("v2[%d]=",j);
scanf("%d",&v2[j]);}



for(i=0;i<n;i++)
{for(j=0;j<m;j++)
{if(v1[i]==v2[j])
printf("numerele repetate sunt %d\n",v1[i]);

}}
system("PAUSE");
return 0;

}
3. Scriei un program care citete de la tastatur un vector de maximum 20 de elemente ntregi i interschimb
elementele de pe poziii pare cu cele de pe poziiile impare.
#include<stdio.h>
#include<stdlib.h>
int main()
{int v[21],i,n,a;
printf("introduceti de la tastatura numarul de elemente:");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("v[%d]=",i);
scanf("%d",&v[i]);}
for(i=0;i<(n/2)*2;i+=2)
{if(i%2==0)
{a=v[i];
v[i]=v[i+1];
v[i+1]=a;}}
for(i=0;i<n;i++)
printf("noul vector este %d\n",v[i]);
system("PAUSE");
return 0;
}
4. Scriei un program care citete de la tastatur un vector de maximum 30 de elemente ntregi i sorteaz n
ordine cresctoare doar elementele de pe poziiile impare
#include<stdio.h>
#include<stdlib.h>
int main()
{int v[31],i,n,tmp;
printf("introduceti de la tastatura numarul de elemente:");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("v[%d]=",i);
scanf("%d",&v[i]);}


for(i=0;i<n;i++)
{if(i%2==1)

{if(v[i]>v[i+2])
{tmp=v[i];
v[i]=v[i+2];
v[i+2]=tmp;}
for(i=0;i<n;i++)
printf("v[%d] = %d\n", i, v[i]);}
}
system("PAUSE");
return 0;
5. Scriei un program care citete de la tastatur un vector de maximum 15 elemente ntregi i insereaz un
element pe o poziie k. Precizare: se vor citi de la tastatur vectorul mpreun cu dimensiunea sa efectiv,
elementul ce se dorete inserat precum i poziia unde se dorete inserat elementul.
#include<stdio.h>
#include<stdlib.h>
int main()
{
int v[15],k,i,p,n,j,tmp;
printf("introduceti numarul de elemente:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("v[%d]=",i);
scanf("%d",&v[i]);}
printf("introduceti elementul ce se doreste inserat:\n");
scanf("%d",&k);
printf("introduceti pozitia de inserare:");
scanf("%d",&p);
for(i=n;i>=p;i--)
v[i+1]=v[i];


v[p]=k;


for(i=0;i<=n;i++)
printf("v[%d] = %d\n", i, v[i]);

system("PAUSE");
return 0;}
6. Scriei un program care citete de la tastatur o matrice ptrat de dimensiuni maxime 10 10 elemente
reale, afieaz matricea transpus i apoi calculeaz suma elementelor matricei.
#include<stdlib.h>
#include<stdio.h>
int main()
{int n,v[10][10],i,j,a[10][10];
printf("introduceti numarul de liniii,coloane:");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{printf("v[%d][%d]=",i,j);
scanf("%d",&v[i][j]);}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%d",v[i][j]);
printf("\n");}

for(i=0;i<n;i++)
{for(j=0;j<n;j++)
a[i][j]=v[j][i];}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%d",&a[i][j]);
printf("\n");}
system("PAUSE");
return 0;
7. Scriei un program care citete de la tastatur o matrice de dimensiuni maxime 10 10 elemente ntregi
apoi determin i afieaz elementele maxime de pe fiecare linie.
#include<stdio.h>
#include<stdlib.h>
int main()
{int v[10][10],i,j,n,m,max;
printf("introduceti numarul de linii n:");
scanf("%d",&n);
printf("introduceti numarul de coloane m:");
scanf("%d",&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++){
printf("v[%d][%d]=",i,j);
scanf("%d",&v[i][j]);}
printf("matricea citita este:\n");
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
printf("%d\t",v[i][j]);
printf("\n");}
max=v[0][0];
for(i=0;i<n;i++){
for(j=1;j<m;j++)
{
if(v[i][j]>max)
max=v[i][j];}
printf("maximul este %d\n",max);
}

system("PAUSE");
return 0;}
8. Scriei un program care citete de la tastatur o matrice ptrat de dimensiuni maxime 100 100 elemente
reale apoi calculeaz suma elementelor de sub i de deasupra diagonalei principale.
#include<stdlib.h>
#include<stdio.h>
int main()
{int v[10][10],i,j,n,s1,s2;
printf("introduceti numarul de linii,coloane n:");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++){
printf("v[%d][%d]=",i,j);
scanf("%d",&v[i][j]);}
printf("matricea citita este:\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%d\t",v[i][j]);
printf("\n");}
s1=0;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
if(i>j)
s1=s1+v[i][j];}
printf(" suma este %d",s1);
system("PAUSE");
return 0;}
Scriei un program care afieaz toi divizorii unui numr natural n citit de la tastatur; dac numrul este prim,
se va afia acest lucru printr-un mesaj.
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, k;
printf("Introduceti un numar natural: ");
scanf("%d", &n);
k = 0;
for(i = 2; i <= n / 2; i++) {
if(n % i == 0) {
printf("%d ", i);
k = 1;
}
}
if(k == 1) printf("sunt divizorii lui %d", n);
else printf("Numarul %d este prim!", n);
printf("\n");
system("PAUSE");
return 0;

You might also like