Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- struct Palindrom { // variabila de tip structura
- int palindrom;
- }numar;
- void Palind(int nr) {
- FILE *g; // variabila de tip fiser
- g = fopen("structura_numar_palindrom.txt","wt");// deschidem in mod scriere
- numar.palindrom = nr;// atribuim valoarea nr
- fprintf(g, "%d %d", numar.palindrom, sizeof(numar)); // afisam numarul si dimensiunea structurei cu ajutorul functiei sizeof()
- }
- int main()
- {
- int nr, opt, isPalind = 0, invers = 0, copie, i, j; // variabile ajutatatoare numar optiune este palindrom, invers
- do {
- printf("1. Introduceti un numar.\n"); // meniu interactiv
- printf("2. Verificati daca este palindrom.\n");
- printf("3. Afisati numarul pe diagonala daca este palindrom\n");
- printf("4. Salvare in fiser\n");
- printf("Introduceti optiunea dorita: "); scanf("%d", &opt);// introducem optiunea
- switch (opt)// alegem in funtie de opiunea intordusa
- {
- case 0:
- exit(0); // inchidem programul
- case 1:
- isPalind = 0; // ne ajuta sa nu facem calcule ne necesare
- printf("nr= "); scanf("%d", &nr);// citim numarul
- copie = nr; // salvam valoarea numarului in copie
- while (copie)
- {
- invers = invers * 10 + copie % 10; // creeam inversul numarului
- copie /= 10;
- }
- if (nr == invers)
- isPalind = 1; // atunci salvam faptulc a numarul este palindrom
- break;
- case 2:
- if (isPalind) { // daca numarul este deja plaindrom nu mai are rost sa-l verificam
- printf("Numarul este Palindrom\n"); // afisam ca este
- }
- else
- {
- printf("Numarul nu este Palindrom\n"); // afisam ca nu este
- }
- break;
- case 3:
- if (isPalind == 0) { // verificam daca este palindrom cu avutorul variabilei
- for (i = 0; i < 3; i++) {
- for (j = 0; j < 3; j++) // afisam matircea
- if (i == j)
- printf("1 ");
- else
- printf("0 ");
- }
- printf("\n"); // salt la rand nou pentru a forma linilie
- }
- else {
- for (i = 0; i < 3; i++) { // altfel numarul este palindrom
- for (j = 0; j < 3; j++)
- if (i == j)
- printf("%d ", nr); // i-l afisam pe diagonala
- else
- printf("0 "); // si in rest afisam 0
- printf("\n");
- }
- }
- break;
- case 4:
- if (isPalind) // daca numarul este palindrom
- Palind(nr); // apelam functia
- else
- printf("numarul nu este palindrom\n");// altfel atentionam utilizaotrul
- break;
- default:
- break;
- }
- } while (1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment