0% found this document useful (0 votes)
11 views19 pages

Exxe

The C program implements functions to perform operations on complex numbers represented as structures. It defines a complex number structure with real and imaginary attributes. Functions are created to sum, difference, and multiply two complex numbers by manipulating the real and imaginary parts of the resulting complex number structures. The functions are called in main to demonstrate performing operations on complex numbers passed as arguments.

Uploaded by

Crasmari ioan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views19 pages

Exxe

The C program implements functions to perform operations on complex numbers represented as structures. It defines a complex number structure with real and imaginary attributes. Functions are created to sum, difference, and multiply two complex numbers by manipulating the real and imaginary parts of the resulting complex number structures. The functions are called in main to demonstrate performing operations on complex numbers passed as arguments.

Uploaded by

Crasmari ioan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 19

/*

proiect:

#include<stdio.h>
#include <GL/glut.h>
#include<windows.h>

int medie(int a, int b)


{int c;

c=a/b;

return c;
}

int *numar;

struct{
int an, km;
float capacitate,medie,varsta;
char brand[15], nume[15], combustibil[15], tract[15], caroserie [15],
motor[15];
}car[20],aux;

void display(){
int i,j;
char text[5];

glClearColor(1.0f,1.0f,1.0f,0.5f);
glClear(GL_COLOR_BUFFER_BIT);
for(i=0;i < *numar; i++){
glBegin(GL_QUADS);
glColor3f(0.0f,i/5.,1.0f);
glVertex2f(-1.25+i*0.23,-0.5);
glVertex2f(-1.25+i*0.23+0.22,-0.5);
glVertex2f(-1.25+i*0.23+0.22,-0.05+car[i].medie/100000.);
glVertex2f(-1.25+i*0.23,-0.05+car[i].medie/100000.);
glEnd();

glRasterPos2f(-1.3+i*0.25+0.08,-0.5+car[i].medie/100000 + 0.5);
sprintf(text, "%.2f",car[i].medie);
for(j=0;j<strlen(text);j++)
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10,text[j]);
glRasterPos2f(-1.3+i*0.25+0.08,-0.6);
for(j=0 ; j < strlen(car[i].nume);j++)
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10,car[i].nume[j]);

}
glFlush();
}
int main(int argc, char **argv)
{
int nr,i,anul,flag;

//scanf("%d",anul)

FILE *date,*file_out;
date = fopen("date.txt","r");
if(!date)
{
printf("Eroare la deschidere fisier!");
fflush(stdout);
return 1;
}
fscanf(date,"%d%d",&nr,&anul);
for(i=1;i<=nr;i++)
fscanf(date,"%s%s%d%d%s%s%f%s
%s",car[i].brand,car[i].nume,&car[i].an,&car[i].km,car[i].combustibil,car[i].tract,
&car[i].capacitate,car[i].caroserie,car[i].motor);

printf("In acest garaj se afla %d masini \n",nr);


fflush(stdout);
for(i=1;i<=nr;i++)
printf("Masina nr %d este o %s %s din anul %d cu %d km combustibil %s tractiune
%s capacitate %.1f caroserie %s si motor de tip %s\
n",i,car[i].brand,car[i].nume,car[i].an,car[i].km,car[i].combustibil,car[i].tract,c
ar[i].capacitate,car[i].caroserie,car[i].motor);
fflush(stdout);
printf("\nAnul curent este: %d",anul);
fflush(stdout);
printf("\n\n Intr-un an:");
fflush(stdout);
for(i=1;i<=nr;i++)
{
car[i].varsta=anul-car[i].an;
car[i].medie=medie(car[i].km,car[i].varsta);
printf("\n Masina numarul %d are %.0f ani si a facut %.2f km pe
an",i,car[i].varsta,car[i].medie);
fflush(stdout);
}

do{
flag=0;
for(i=0;i<nr;i++)
if(car[i].medie>car[i+1].medie)
{
aux=car[i];
car[i]=car[i+1];
car[i+1]=aux;
flag=1;
}
}while(flag!=0);

file_out=fopen("dateout.txt","w");
fprintf(file_out,"Brand Nume An Kilometri km/an ");
for(i=1;i<=nr;i++)
fprintf(file_out,"\n%s %s %d %d %.2f",
car[i].brand,car[i].nume,car[i].an,car[i].km,car[i].medie);

numar = &nr;

glutInit(&argc, argv);
glutInitWindowSize(320, 320);
glutInitWindowPosition(100, 100);
glutCreateWindow("Grafic KM Anual");
glutDisplayFunc(display);
glutMainLoop();

return 0;
}

#include <GL/freeglut.h>
#include<stdio.h>
#include<windows.h>

float medie(int a, int b) {


float avg;
avg = (float) a / b;
return avg;
}
int scadere(int a, int b) {
int diferenta;
diferenta = a - b;
return diferenta;
}
float produs(int a, int b){
float pix;
pix = (float) a*b;
return pix;

}
struct {
char titlu[30];
int pagini;
int capitole;
int an_aparitie;
int clasament;
char tari_publicare[20];
char edituri[20];
int pret;
int vanzari;
int vechime;
float medie_vanzari;
float medie_venituri;
} book[30], x;

int *nr;

void display() {
int i, j;
char text[10];
glClearColor(1.0f, 1.0f, 1.0f, 0.5f);
glClear(GL_COLOR_BUFFER_BIT);

for (i = 1; i <= *nr; i++) {


glBegin(GL_QUADS);
glColor3f(0.0f, i / 10.f, 0.0f);
glVertex2f(-0.95 + i * 0.15, -0.5);
glVertex2f(-0.95 + i * 0.15 + 0.10, -0.5);
glVertex2f(-0.95 + i * 0.15 + 0.10,
-0.05 + book[i].medie_vanzari / 100000.0);
glVertex2f(-0.95 + i * 0.15, -0.05 + book[i].medie_vanzari / 100000.0);

glEnd();

glRasterPos2f(-1 + i * 0.16, -0.6);


for (j = 0; j < strlen(book[i].titlu); j++)
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10,
book[i].titlu[j]);

glRasterPos2f(-1 + i * 0.13 + 1,
1.9);
sprintf(text, "%.2f", book[i].medie_vanzari);
for (j = 0; j < strlen(text); j++)
glRasterPos2f(-1. + i * 0.15 + .1,
0.9);
sprintf(text, "%.2f", book[i].medie_vanzari);
}

glFlush();
}

int main(int argc, char **argv) {


int i, a, an, y ;

FILE *info, *date_finale;

info = fopen("info.txt", "r");


if (!info) {
printf("Eroare la deschiderea fisierului!");
fflush(stdout);
return -1;
}

fscanf(info, "%d%d", &a, &an);


for (i = 1; i <= a; i++)
fscanf(info, "%s%d%d%d%d%s%s%d%d", book[i].titlu, &book[i].pagini,
&book[i].capitole, &book[i].an_aparitie,
&book[i].clasament,
book[i].tari_publicare, book[i].edituri, &book[i].pret,
&book[i].vanzari);

printf(" ######################################################");

printf("\n\n Salut. Bine ai venit în cadrul proiectului nostru.\n\n");


printf(
" Noi ne ocupăm cu întreținerea unei biblioteci. În prezent nu
dispunem decât de seria ,,CAVALERII PARDAILLAN,,");
printf(
"\n\n scrisă de Michael Zevaco, dar stați aproape. În curând vor
apărea titluri noi! ;)");
printf(
"\n\n\n Astfel, în bibliotecă avem un număr de 10 volume, toate
fiind în ordine după cum urmează: \n");

for (i = 1; i <= a; i++)


printf(
"\n\n %d. %s cu un număr de %d pagini și %d capitole a
apărut în anul %d. S-a situat pe locul %d în clasamentul celor mai citite romane de
dragoste din acea perioadă. Țara cu cel mai mare succes de piață este %s în care
editura %s a vândut la prețul aproximativ de %d lei %d exemplare.",
i, book[i].titlu, book[i].pagini, book[i].capitole,
book[i].an_aparitie, book[i].clasament,
book[i].tari_publicare,
book[i].edituri, book[i].pret, book[i].vanzari);

printf("\n\n\n În prezent ne aflăm în anul %d.", an);


printf("\n\n În acest an:");

for (i = 1; i <= a; i++) {


book[i].vechime = scadere(an, book[i].an_aparitie);
book[i].medie_vanzari = medie(book[i].vanzari, book[i].vechime);
book[i].medie_venituri = produs(book[i].vanzari, book[i].pret);
printf(
"\n Volumul numarul %d împlinește %d ani vechime și până
acum a generat ~ %.1f vanzari în fiecare an.",
i, book[i].vechime, book[i].medie_vanzari);
}

do {
y = 0;
for (i = 0; i < a; i++)
if (book[i].medie_venituri > book[i + 1].medie_venituri) {
x = book[i];
book[i] = book[i + 1];
book[i + 1] = x;
y = 1;
}
} while (y != 0);

date_finale = fopen("date_finale.txt", "w");


fprintf(date_finale, "Titlu An_aparitie Vanzari Medie_venituri ");
for (i = 1; i <= a; i++)
fprintf(date_finale, "\n\n%s %d %d %.1f\n", book[i].titlu,
book[i].an_aparitie, book[i].vanzari,
book[i].medie_venituri);

nr = &a;
fflush(stdout);
glutInit(&argc, argv);
glutInitWindowSize(680,480);
glutInitWindowPosition(100, 100);
glutCreateWindow(
"Graficul vânzărilor generat in medie pe parcursul unui an");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

1.*Realizați un program care folosește funcții utilizator


* pentru a realiza operații cu numere complexe.
Numerele complexe vor fi variabile de tip struct care conțin două atribute
* (real și imaginar). Funcțiile utilizator pot avea următoarele signaturi:
complex suma(complex, complex);
complex diferenta(complex, complex);
complex produs(complex, complex);

* *
#include<stdio.h>

struct complex
{
float re, im;
};

struct complex s,d, p;


struct complex suma(struct complex c1, struct complex c2)
{
s.re = c1.re + c2.re;
s.im = c1.im + c2.im;
printf("suma: %.f%+.fi\n",s.re, s.im);
//s = s.re + s.im;
//return s;
}
struct complex diferenta(struct complex c1, struct complex c2)
{
d.re = c1.re - c2.re;
d.im = c1.im - c2.im;
printf("diferenta: %.f%+.fi\n",d.re, d.im);
//return d;
}
struct complex produs(struct complex c1, struct complex c2)
{
float rez1, rez2;
rez1 = c1.re * c2.re - c1.im * c2.im ;
rez2 = c1.re * c2.im + c1.im * c2.re;
printf("produsul: %.f%+.fi\n",rez1, rez2);
}

int main()
{
struct complex a, b, sum, dif;
a.re = 1;
a.im = 4;
b.re = 7;
b.im = 6;
//s = a.re + b.re + (a.im + b.im);
//printf("%.2f%.2fi", s.re, s.im);
suma(a,b);
diferenta(a,b);
produs(a,b);
// sum = suma(a,b);
// dif = diferenta(a,b);
// printf("%.f\n%.f", sum, dif);

return 0;
}

2.*Realizați un program care va interschimba valorile a două variabile alocate


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

int main() {
int *v1, *v2, *x;

// Alocarea dinamică a două variabile


v1 = (int *)malloc(sizeof(int));
v2 = (int *)malloc(sizeof(int));

// Citirea valorilor pentru cele două variabile


printf("Introduceți v1: ");
fflush(stdout);
scanf("%d", v1);

printf("Introduceți v2: ");


fflush(stdout);
scanf("%d", v2);

// Afișarea valorilor inițiale


printf("\nValorile inițiale au fost acestea:\n");
printf("v1 = %d\n", *v1);
printf("v2 = %d\n", *v2);

// Schimbarea valorilor între cele două variabile


x = v1;
v1 = v2;
v2 = x;

// Afișarea valorilor schimbate


printf("\nValorile schimbate:\n");
printf("var1 = %d\n", *v1);
printf("var2 = %d\n", *v2);

// Eliberarea memoriei alocate dinamic


free(v1);
free(v2);

return 0;
}
3.*Realizați suma a doi vectori declarați în mod dinamic.
* *
#include <stdio.h>
#include <stdlib.h>

int main() {
int *vector1, *vector2, *suma;
int dimensiune;
int i;

// Citirea dimensiunii vectorilor


printf("Introduceți dimensiunea vectorilor: \n");
fflush(stdout);
scanf("%d", &dimensiune);

// Alocarea dinamică a memoriei pentru vectorii și suma


vector1 = (int *)malloc(dimensiune * sizeof(int));
vector2 = (int *)malloc(dimensiune * sizeof(int));
suma = (int *)malloc(dimensiune * sizeof(int));

// Citirea valorilor pentru primul vector


printf("Introduceți valorile pentru primul vector:\n");
fflush(stdout);
for (i = 0; i < dimensiune; i++) {
printf("vector1[%d] = ", i);
fflush(stdout);
scanf("%d", &vector1[i]);
}

// Citirea valorilor pentru al doilea vector


printf("\nIntroduceți valorile pentru al doilea vector:\n");
fflush(stdout);
for (i = 0; i < dimensiune; i++) {
printf("vector2[%d] = ", i);
fflush(stdout);
scanf("%d", &vector2[i]);
}

// Calcularea sumei vectorilor


for (i = 0; i < dimensiune; i++) {
suma[i] = vector1[i] + vector2[i];
}

// Afișarea sumei
printf("\nSuma vectorilor:\n");
fflush(stdout);
for (i = 0; i < dimensiune; i++) {
printf("suma[%d] = %d\n", i, suma[i]);
fflush(stdout);
}

// Eliberarea memoriei alocate dinamic


free(vector1);
free(vector2);
free(suma);

return 0;
}
4.*Scrieti un program care
* sa deseneze un hexagon rosu pe un fundal verde inchis.*
#include <GL/glut.h>
#include<windows.h>
// Funcția de afișare
void display() {
glClear(GL_COLOR_BUFFER_BIT);

// Setarea culorii fundalului


glClearColor(0.0, 0.4, 0.0, 1.0); // Verde închis

// Setarea culorii hexagonului


glColor3f(1.0, 0.0, 0.0); // Roșu

// Desenarea hexagonului
glBegin(GL_POLYGON);
glVertex2f(-0.5, 0.866);
glVertex2f(-1.0, 0.0);
glVertex2f(-0.5, -0.866);
glVertex2f(0.5, -0.866);
glVertex2f(1.0, 0.0);
glVertex2f(0.5, 0.866);
glEnd();

glFlush();
}

// Funcția de redimensionare a ferestrei


void reshape(int width, int height) {
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.5, 1.5, -1.5, 1.5);
glMatrixMode(GL_MODELVIEW);
}

int main(int argc, char** argv) {


glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(600, 600);
glutCreateWindow("Hexagon");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}

5.*Realizati un program care sa deseneze simbolul + cu negru pe un fundal alb.*


#include<windows.h>
#include <GL/glut.h>

// Funcția de afișare
void display() {
glClear(GL_COLOR_BUFFER_BIT);

// Setarea culorii fundalului


glClearColor(1.0, 1.0, 1.0, 1.0); // Alb

// Setarea culorii simbolului "+"


glColor3f(0.0, 0.0, 0.0); // Negru

// Desenarea simbolului "+"


glLineWidth(5.0);
glBegin(GL_LINES);
// Linia verticală
glVertex2f(0.0, 0.5);
glVertex2f(0.0, -0.5);

// Linia orizontală
glVertex2f(-0.5, 0.0);
glVertex2f(0.5, 0.0);
glEnd();

glFlush();
}

// Funcția de redimensionare a ferestrei


void reshape(int width, int height) {
glViewport(0, 0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
}

int main(int argc, char** argv) {


glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(600, 600);
glutCreateWindow("Simbol +");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}

6.*Realizați un program care va determina dacă un număr introdus


* de la tastatură este palindrom (un număr palindrom este un număr
* care citit de la dreapta la stânga are aceeași valoare cu numărul citit de la
stânga la dreapta).
* *
#include <stdio.h>
int main() {
int nr, nr_initial, nr_intors = 0;

printf("Introduceți un număr: ");


fflush(stdout);
scanf("%d", &nr);

nr_initial = nr;

while (nr > 0) {


int rest = nr % 10;
nr_intors = nr_intors * 10 + rest;
nr /= 10;
}

if (nr_initial == nr_intors) {
printf("%d este un număr palindrom.\n", nr_initial);
} else {
printf("%d nu este un număr palindrom.\n", nr_intors);
}

return 0;
}

7.*Validați o adresă de email (să conțină o singură dată caracterul @,


* iar după caracterul . să fie cel puțin două litere).
* *

#include <stdio.h>
#include <string.h>

int main() {
char email[20];
int ar = 0;
int pct = 0;
int lungime_sir;
int valid = 1;

printf("Introduceți adresa de e-mail: ");


fflush(stdout);
fgets(email, sizeof(email), stdin);
email[strcspn(email, "\n")] = '\0';

lungime_sir = strlen(email);

for (int i = 0; i < lungime_sir; i++) {


if (email[i] == '@') {
ar++;
} else if (email[i] == '.') {
pct++;
}
}
if (ar != 1) {
printf("Adresa de e-mail nu conține exact un caracter @.\n");
valid = 0;
}

if (pct != 1) {
printf("Adresa de e-mail nu contine exact un caracter '.'.\n");
valid = 0;
}

if (email[lungime_sir - 1] < 'A' || (email[lungime_sir - 1] > 'Z' &&


email[lungime_sir - 1] < 'a')
|| email[lungime_sir - 1] > 'z' || email[lungime_sir - 2] < 'A' ||
(email[lungime_sir - 2] > 'Z' && email[lungime_sir - 2] < 'a') ||
email[lungime_sir - 2] > 'z')
{
printf("După caracterul '.' trebuie să fie cel puțin două litere.\n");
valid = 0;
}

if (valid) {
printf("Adresa de e-mail este validă.\n");
} else {
printf("Adresa de e-mail nu este validă.\n");
}

return 0;
}

8.*Realizati un program care sa deseneze um om cu mainile violet, picioarele


verzi , corpul roz si capul galben.*

#include <GL/freeglut.h>
#include<windows.h>
void display() {
glClear(GL_COLOR_BUFFER_BIT);

// Desenăm capul
glColor3f(1.0f, 1.0f, 0.0f); // Setăm culoarea la galben
glPushMatrix();
glTranslatef(0.0f, 0.6f, 0.0f);
glutSolidSphere(0.3f, 100, 100);
glPopMatrix();

// Desenăm corpul
glColor3f(1.0f, 0.0f, 0.5f); // Setăm culoarea la roz
glPushMatrix();
glTranslatef(0.0f, 0.0f, 0.0f);
glScalef(0.6f, 1.0f, 0.3f);
glutSolidCube(1.0f);
glPopMatrix();

// Desenăm brațele
glColor3f(0.6f, 0.0f, 1.0f); // Setăm culoarea la violet
glPushMatrix();
glTranslatef(-0.4f, 0.2f, 0.0f);
glScalef(0.3f, 0.6f, 0.3f);
glutSolidCube(1.0f);
glPopMatrix();

glPushMatrix();
glTranslatef(0.4f, 0.2f, 0.0f);
glScalef(0.3f, 0.6f, 0.3f);
glutSolidCube(1.0f);
glPopMatrix();

// Desenăm picioarele
glColor3f(0.0f, 1.0f, 0.0f); // Setăm culoarea la verde
glPushMatrix();
glTranslatef(-0.2f, -0.7f, 0.0f);
glScalef(0.3f, 0.6f, 0.3f);
glutSolidCube(1.0f);
glPopMatrix();

glPushMatrix();
glTranslatef(0.2f, -0.7f, 0.0f);
glScalef(0.3f, 0.6f, 0.3f);
glutSolidCube(1.0f);
glPopMatrix();

glFlush();
}

int main(int argc, char** argv) {


glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 400);
glutCreateWindow("Desenare om");
glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // Setăm culoarea fundalului la alb
gluOrtho2D(-1.0, 1.0, -1.0, 1.0); // Setăm sistemul de coordonate
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

9.*Considerăm un fișier de date care conține trei numere întregi. Să se scrie


* un program care citește numerele din fișier și afișează cele trei numere și
media acestora. *
#include <stdio.h>

int main() {
FILE *file;
int num1, num2, num3;
float average;

// Deschideți fișierul în modul de citire


file = fopen("numere.txt", "r");
if (file == NULL) {
printf("Nu se poate deschide fisierul.\n");
return 1;
}

// Citirea celor trei numere din fișier


fscanf(file, "%d %d %d", &num1, &num2, &num3);

// Închideți fișierul
fclose(file);

// Calculați media celor trei numere


average = (float)(num1 + num2 + num3) / 3;

// Afișarea numerelor și a mediei


printf("Numerele sunt: %d, %d, %d\n", num1, num2, num3);
printf("Media este: %.2f\n", average);

return 0;
}

10.*Scrieţi un program care va afişa toate cifrele unui număr, în ordine inversă,
* cu câte un spaţiu între ele. Ex. pt 12345 programul va afişa 5 4 3 2 1.
* *

#include <stdio.h>

int main() {
int nr;

printf("Introduceti un numar: ");


fflush(stdout);
scanf("%d", &nr);

printf("Cifrele numarului in ordine inversa sunt: ");


fflush(stdout);

while (nr > 0) {


printf("%d ", nr % 10);
nr /= 10;
}

printf("\n");

return 0;
}

probleme facute de mine


1)
#include<stdio.h>
int main() {
int v[100], aux, i, n, v2[100], j;
// int m=0;
printf("Introduceti numarul de numere: ");
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &v[i]);
}
for (i = 0; i < n; i++) {
if (v[i] % 2 != 0) {
v2[i] = v[i];
// m++;
}
}
for (i = 0; i < n; i++)
printf("%d ", v2[i]);
printf("\n");
do {
j = 0;
for (i = 0; i < n; i++)
if (v2[i] < v2[i + 1]) {
aux = v2[i];
v2[i] = v2[i + 1];
v2[i + 1] = aux;
j++;
}
} while (j != 0);
for (i = 0; i < n; i++)
if (v2[i] == 0)
break;
else

printf("%d ", v2[i]);

do {
j = 0;
for (i = 0; i < n; i++)
if (v[i] > v[i + 1]) {
aux = v[i];
v[i] = v[i + 1];
v[i + 1] = aux;
j++;
}
} while (j != 0);
for (i = 0; i < n; i++) {
if (i % 6 == 0) {
printf("\n");
}
printf("%d ", v[i]);
}

return 0;
}
//Dati la tastatura un interval de numere (maxim 100 de numere sa fie in interval)
//si apoi codul sa salvexe numerele impare in mod descrescator (adica v[0] =
// cel mai mare nr) si sa afiseze cate 6 numere pe rand, in ordine crescatoare,
//adica de la cel mai mic numar
2)

#include<stdio.h>
#include<string.h>
#include <ctype.h>
*Să se scrie un program care va citi de la tastatură un șir de caractere și va
determina:

dacă șirul conține cifre, se va determina șirul rezultat prin eliminarea cifrelor
(ex. in:"dsACdg544Edsgf", out:"dsACdgEdsgf")
la fel și în cazul literelor (se extrage numărul întreg format din cifrele
șirului:
"dsACdg544Edsgf" -> 544 int)

*
int main() {
char sir[20], sir2[20], sir3[20];
int len, i, nr, nr2, nr3, sum = 0, mic, mare, nr4;
scanf("%s", sir);
len = strlen(sir);
//nr de cifre
for (i = 0; i < len; i++) {
if (sir[i] >= '0' && sir[i] <= '9')
nr++;
}
printf("\n\n%d", nr);
//nr de vocale
for (i = 0; i < len; i++)
if (sir[i] == 'A' || sir[i] == 'E' || sir[i] == 'I' || sir[i] == 'O'
|| sir[i] == 'U' || sir[i] == 'a' || sir[i] == 'e'
|| sir[i] == 'i' || sir[i] == 'o' || sir[i] == 'u')
nr2++;
printf("\n%d", nr2);
//suma cifrelor din sir
for (i = 0; i < len; i++) {
if (sir[i] >= '0' && sir[i] <= '9') {
nr3 = sir[i] - '0';
sum += nr3;
}
//sum+= <=> sum = sum + ...
}
printf("\n%d", sum);
//nr de litere mici si litere mari
for (i = 0; i < len; i++) {
if (sir[i] >= 'a' && sir[i] <= 'z')
mic++;
}
for (i = 0; i < len; i++) {
if (sir[i] >= 'A' && sir[i] <= 'Z')
mare++;
}
nr4 = mic + mare;
printf("\n%d", nr4);
//litere mici in litere mari
strcpy(sir,sir2);
for (i = 0; i < len; i++) {
if (sir[i] >= 'a' && sir[i] <= 'z')
sir2[i]-=32;
}
printf("\n");
printf("%s", sir2);
//litere mari in litere mici
strcpy(sir,sir3);
for (i = 0; i < len; i++) {
if (sir[i] >= 'A' && sir[i] <= 'Z')
sir3[i]+=32;
}
printf("\n");
printf("%s", sir3);
return 0;
}
*

*#include<stdio.h>
#include<string.h>
int main () {

struct complex{
int re, im;
};

struct complex c[10];


FILE *f;
f = fopen("date.txt", "r");
int n, i, sre = 0, sim = 0;

fscanf(f, "%d", &n);


for(i = 0; i < n; i++){
fscanf(f, "%d%d", &c[i].re, &c[i].im);
sre = sre + c[i].re;
sim = sim + c[i].im;
}

printf("%d%+di", sre, sim);

return 0;
}
*

*#include<stdio.h>
#include<string.h>
int main(){
int n=0,i;
int plitere=0;
char hotelmic[20];
int pretmic=0;
struct hotel{
char numehotel[20];
char localitate[20];
int nrcam;
int pret;
}hotel[5];
FILE *a;
a=fopen("hm.txt","r");
while(fscanf(a, "%s%s%d
%d",hotel[n].numehotel,hotel[n].localitate,&hotel[n].nrcam,&hotel[n].pret)!=EOF){
n++;
}
for(i=0;i<n;i++){
fscanf(a, "%s%s%d
%d",hotel[i].numehotel,hotel[i].localitate,&hotel[i].nrcam,&hotel[i].pret);
}
plitere = strlen(hotel[0].numehotel);
strcpy(hotelmic, hotel[0].numehotel);
for(i=1;i<n;i++)
{
if(plitere > strlen(hotel[i].numehotel))
{
strcpy(hotelmic, hotel[i].numehotel);
plitere = strlen(hotel[i].numehotel);
}

}
for(i=0;i<n;i++)
{
if(hotel[i].pret>=300)
pretmic++;
}
printf("Hotelul cu cele mai putine litere:%s\n",hotelmic);
printf("nr de hoteluri peste 300eur: %d",pretmic);

return 0;
}
*

*#include<stdio.h>
#include<string.h>
int main(){
char vangn[20],vangp[20];
int n=0,i,vechimea, suma=0;
struct angajat{
char nume[10];
char prenume[10];
int nastere;
int angajare;
int sal;
}angajat[5];
FILE *a;
a = fopen("note.txt","r");
while(fscanf(a,"%s%s%d%d
%d",angajat[n].nume,angajat[n].prenume,&angajat[n].nastere,&angajat[n].angajare,
&angajat[n].sal)!=EOF){
n++;
}
for(i=0;i<n;i++)
{fscanf(a,"%s%s%d%d
%d",angajat[i].nume,angajat[i].prenume,&angajat[i].nastere,&angajat[i].angajare,
&angajat[i].sal);

}
//vechimea
vechimea = angajat[0].angajare;
strcpy(vangn, angajat[0].nume);
strcpy(vangp, angajat[0].prenume);
for(i=1;i<n;i++)
{
if(vechimea<angajat[i].angajare){
vechimea = angajat[i].angajare;
strcpy(vangn, angajat[i].nume);
strcpy(vangp, angajat[i].prenume);
}
}
for(i=0;i<n;i++)
{
if(angajat[i].sal>=1000)
suma++;
}
printf("Vechimea cea mai mare o are %s %s \n",vangn , vangp);
printf("Cati au salariu mai mare de 1000: %d",suma);

return 0;
}
* *
*/

You might also like