Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- char a, b, i; // variabile ajutatoare
- FILE *f, *g; // variabile de tip fiser
- f = fopen("in.txt", "r"); // deschidem in mod citire
- g = fopen("out.txt", "w"); // deschidem in mod afisare
- while(!feof(f) && fscanf(f, "%c", &a) != EOF) { // citim pana dam de ssfarsitul fiserului
- if (a < '0' || a > '9') // daca a este diferit de cifra consideram ca s-a terminat secventa si sarim pana gasim alta
- continue; // sarim toti pasii si ne intoarcem inapoi la primul while
- for (i = 49; i <= a; i++) // trebuie sa deschidem a paranteze rotunde
- fprintf(g, "(");//deshicem parantezele
- fprintf(g, "%c", a); // afisam cifra a
- while (!feof(f) && fscanf(f, "%c", &b) != EOF)// mergem pana la sfarsitul linei sau pana cand intalnim un cracter diferit de cifra
- {
- if (b < '0' || b > '9') // daca b este diferit de cifra parasim buca while
- break; // parasirea buclei
- if (a > b) // daca a este mai mare ca b
- for (i = 1; i <= a - b; i++) // atunci inchdem difernta lor paranteze
- fprintf(g, ")");
- else
- for (i = 1; i <= b - a; i++) // altfel deschidem diferenta lor paranteze daca a = b se vor deschide 0
- fprintf(g, "(");
- fprintf(g, "%c", b);// afisam cifra curenta acum
- a = b;// pastram in memorie cifra curenta pentru a face urmatoarea comparatie
- }
- for (i = 49; i <= a; i++)// dupa ce am parasit while trebuie sa inchdem b paranteze rounde deoarece nu se mai afla alt numar
- fprintf(g, ")");
- fprintf(g, "\n");// sarim la rand nou
- }
- fclose(g);// inchidem fiser
- fclose(f);// inchidem fiser
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment