Alx09

Untitled

May 19th, 2020
1,368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.47 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct Palindrom { // variabila de tip structura
  5.     int palindrom;
  6. }numar;
  7.  
  8. void Palind(int nr) {
  9.     FILE *g; // variabila de tip fiser
  10.     g = fopen("structura_numar_palindrom.txt","wt");// deschidem in mod scriere
  11.     numar.palindrom = nr;// atribuim valoarea nr
  12.     fprintf(g, "%d %d", numar.palindrom, sizeof(numar)); // afisam numarul si dimensiunea structurei cu ajutorul functiei sizeof()
  13.  
  14. }
  15.  
  16. int main()
  17. {
  18.     int nr, opt, isPalind = 0, invers = 0, copie, i, j; // variabile ajutatatoare numar optiune este palindrom, invers
  19.     do {
  20.         printf("1. Introduceti un numar.\n"); // meniu interactiv
  21.         printf("2. Verificati daca este palindrom.\n");
  22.         printf("3. Afisati numarul pe diagonala daca este palindrom\n");
  23.         printf("4. Salvare in fiser\n");
  24.         printf("Introduceti optiunea dorita: "); scanf("%d", &opt);// introducem optiunea
  25.         switch (opt)// alegem in funtie de opiunea intordusa
  26.         {
  27.         case 0:
  28.             exit(0); // inchidem programul
  29.         case 1:
  30.             isPalind = 0; // ne ajuta sa nu facem calcule ne necesare
  31.             printf("nr= "); scanf("%d", &nr);// citim numarul
  32.             copie = nr; // salvam valoarea numarului in copie
  33.             while (copie)
  34.             {
  35.                 invers = invers * 10 + copie % 10; // creeam inversul numarului
  36.                 copie /= 10;
  37.             }
  38.             if (nr == invers)
  39.                 isPalind = 1; // atunci salvam faptulc a numarul este palindrom
  40.                
  41.            
  42.             break;
  43.         case 2:
  44.             if (isPalind) { // daca numarul este deja plaindrom nu mai are rost sa-l verificam
  45.                 printf("Numarul este Palindrom\n"); // afisam ca este
  46.                
  47.             }
  48.             else
  49.             {
  50.                 printf("Numarul nu este Palindrom\n"); // afisam ca nu este
  51.             }
  52.             break;
  53.         case 3:
  54.             if (isPalind == 0) { // verificam daca este palindrom cu avutorul variabilei
  55.                 for (i = 0; i < 3; i++) {
  56.                     for (j = 0; j < 3; j++) // afisam matircea
  57.                         if (i == j)
  58.                             printf("1 ");
  59.                         else
  60.                             printf("0 ");
  61.                 }
  62.                 printf("\n"); // salt la rand nou pentru a forma linilie
  63.             }
  64.             else {
  65.                 for (i = 0; i < 3; i++) { // altfel numarul este palindrom
  66.                     for (j = 0; j < 3; j++)
  67.                         if (i == j)
  68.                             printf("%d ", nr); // i-l afisam pe diagonala
  69.                         else
  70.                             printf("0 "); // si in rest afisam 0
  71.                     printf("\n");
  72.                 }
  73.             }
  74.             break;
  75.         case 4:
  76.             if (isPalind) // daca numarul este palindrom
  77.                 Palind(nr); // apelam functia
  78.             else
  79.                 printf("numarul nu este palindrom\n");// altfel atentionam utilizaotrul
  80.             break;
  81.         default:
  82.             break;
  83.         }
  84.     } while (1);
  85.    
  86.  
  87.    
  88.    
  89.    
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment