/**
* Problema 1
*
* Folosim functiile srand(); si rand(); definite in <stdlib.h>.
* Generatorul de numere aleatoare il initializam cu valoarea SEED.
*
*/
# include <stdio.h>
# include <stdlib.h>
# define SEED 7
int main()
{
int i;
srand(SEED); // Initializam generatorul de numere aleatoare
for (i = 0; i < 5; i++)
printf("%d %d %d\n", rand(), rand(), rand());
return 0;
}
/**
* Problema 2
*
* Rezolvarea se compune din citirea si apoi scrierea a trei
* variabile de tip float.
*
*/
# include <stdio.h>
int main()
{
float a, b, c;
scanf("%e%f%g", &a, &b, &c);
printf("%e %f %g\n", a, b, c);
return 0;
}
/**
* Problema 3
*
*/
# include <stdio.h>
# include <math.h>
int main()
{
double x, PI = M_PI;
printf(" x sin(x) cos(x)\n" );
for(x = 0; x <= 2 * PI; x = x + PI / 20)
printf( "%+2.3lf %+2.3lf %+2.3lf\n", x, sin(x), cos(x) );
return 0;
}
/**
* Problema 4
*
*/
# include <stdio.h>
int main()
{
float x, y;
scanf("%f%f", &x, &y);
if (x == 0 || y == 0)
printf("Punct pe axe");
else
if (x > 0)
if (y > 0)
printf("Cadranul 1");
else
printf("Cadranul 4");
else
if (y > 0)
printf("Cadranul 2");
else
printf("Cadranul 3");
return 0;
}
/**
* Problema 5
*
* Trei numere intregi pot forma laturile unui triunghi doar daca
* suma a oricare doua dintre ele este cel putin egala cu al treilea
*/
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if (a > b + c || b > a + c || c > a + b)
printf("NU");
else
printf("DA");
return 0;
}
/**
* Problema 6
*
*/
# include <stdio.h>
int main()
{
int a, b, c; // laturile triunghiului
int drept = 0, isoscel = 0, echilateral = 0; // 0 = fals, 1 = adevarat
int asq, bsq, csq; // patratele laturilor
scanf("%d%d%d", &a, &b, &c);
//verificam daca laturile sunt corecte
if (a > b + c || b > a + c || c > a + b)
{
return 0;
}
else
{
// verificam daca triunghiul are un unghi drept
asq = a * a;
bsq = b * b;
csq = c * c;
if (asq + bsq == csq || asq + csq == bsq || bsq + csq == asq)
drept = 1;
// verificam daca triunghiul este echilateral -> doar daca nu este dreptunghic
if (drept != 1 && (a == b && b == c))
echilateral = 1;
// verificam daca este isoscel -> doar daca nu este echilateral
if (echilateral != 1 && (a == b || b == c || a == c))
isoscel = 1;
// afisam rezultatul
if (drept == 1)
printf ("dreptunghic"); // poate fi dreptunghic oarecare sau dreptunghic isoscel
if (echilateral == 1)
printf ("echilateral\n"); // daca e echilateral nu mai poate fi altceva
else
if (isoscel == 1)
printf (" isoscel.\n");
else
printf (" oarecare.\n"); // daca nu e isoscel nici echilateral nu e, deci e oarecare
}
return 0;
}
/**
* Problema 7
*
*/
# include <stdio.h>
int main()
{
int a, b, c, d, min, max;
scanf ("%d %d %d %d", &a, &b, &c, &d);
// aflam mai intai maximul dintre a si b si le comparam pe restul cu max
if (a>b)
max = a;
else
max = b;
if (c>max) max = c;
if (d>max) max = d;
// procedam la fel si pentru min
if (a<b)
min = a;
else
min = b;
if (c<min) min = c;
if (d<min) min = d;
printf ("minimul este: %d\nmaximul este: %d\n", min, max);
return 0;
}
/**
* Problema 8
*
*/
#include <stdio.h>
int main()
{
int a, b, c, aux;
scanf ("%d %d %d", &a, &b, &c);
// sortam cele trei numere prin interchimbari
// comparam, pe rand, a cu b, a cu c si b cu c
if (a>b) {
aux = a;
a = b;
b = aux;
}
if (a>c) {
aux = a;
a = c;
c = aux;
}
if (b>c) {
aux = b;
b = c;
c = aux;
}
printf ("Numerele sortate: %d, %d, %d\n", a, b, c);
return 0;
}
/**
* Problema 9+10
*
*/
#include <stdio.h>
int main()
{
int h, m, s; //ora, minutul, secunda
//citim ora
if ( scanf("%d", &h) != 1 ) { // a aparut o eroare la citirea orei
printf("Ora a fost introdusa eronat.\n");
return 1; // cod de eroare (poate fi interpretat mai departe daca e nevoie)
}
//testez ora - s-a citit un intreg, dar este el corect?
if (h < 0 || h > 23) { //h = 0....23
printf("Ora trebuie sa fie in intervalul 0..23\n");
return 11; // cod de eroare (poate fi interpretat sau ignorat)
}
//citim minutul
if ( scanf("%d", &m) != 1) { // a aparut o eroare la citirea orei
printf("Minutul a fost introdus eronat.\n");
return 2; // cod de eroare (poate fi interpretat sau ignorat)
}
//testez minutul - s-a citit un intreg, dar este el corect?
if (m < 0 || m > 59) { //m = 0....59
printf("Minutul trebuie sa fie in intervalul 0..59\n");
return 22; //cod de eroare (poate fi interpretat sau ignorat)
}
//citim secunda
if ( scanf("%d", &s) != 1) { // a aparut o eroare la citirea orei
printf("Secunda a fost introdusa eronat.\n");
return 3;//cod de eroare - programul se opreste daca ajunge aici
}
//testez secunda - s-a citit un intreg, dar este el corect?
if (s < 0 || s > 59) { //m = 0....59
printf("Secunda trebuie sa fie in intervalul 0..59\n");
return 33; //cod de eroare (poate fi interpretat sau ignorat)
}
//toate datele au fost citite corect (sunt intregi si au valori corecte)
printf("%02d:%02d:%02d\n", h, m, s);
return 0;
}