Untitled
unknown
plain_text
2 years ago
2.1 kB
4
Indexable
#include <stdio.h> #include <stdlib.h> #include <string.h> #define max 50 // Funcție pentru afișarea elementelor în ordine descrescătoare void afisare_descrescatoare(char* m, int n) { printf("Elementele in ordine descrescatoare sunt: "); for (int i = n - 1; i >= 0; --i) { printf("%c ", m[i]); } printf("\n"); } // Funcție pentru a extrage cuvântul format din literele de pe poziție impară void extrage_litereimpare(char* m, int n) { int i; printf("Cuvantul format din literele de pe pozitie impara este: "); for ( i = 0; i < n; i += 2) { printf("%c", m[i]); } printf("\n"); } // Funcție pentru calcularea sumei reprezentărilor ASCII și afișarea reprezentării în binar void calculeaza_suma(char* m, int n) { int i, s = 0; for ( i = 0; i < n; ++i) { s += m[i]; } printf("Suma reprezentarilor ASCII ale elementelor este: %d\n", s); // Convertirea sumei în reprezentare binară printf("Reprezentarea binara a sumei este: "); for (i = sizeof(int) * 8 - 1; i >= 0; --i) { printf("%d", (s >> i) & 1); } printf("\n"); } int main() { char m[max + 1]; // +1 pentru a ține cont de caracterul 'i' printf("Introduceti elementele multimii de litere mici: ", max); fgets(m, sizeof(m), stdin); m[strcspn(m, "\n")] = '\0'; // Eliminarea newline-ului introdus de fgets int lm = strlen(m); if (lm > max) { printf("Prea multe caractere introduse. Se vor afisa primele %d caractere.\n", max); lm = max; } int opt; do { printf("\n0. Iesire"); printf("\n1. Afisare elemente in ordine descrescătoare"); printf("\n2. Afisare cuvânt format din literele de pe pozitie impara"); printf("\n3. Calcul si afisare reprezentare binara a sumei reprezentarilor ASCII"); printf("\nIntroduceti optiunea: "); scanf("%d", &opt); switch (opt) { case 0: exit(0); break; case 1: afisare_descrescatoare(m, lm); break; case 2: extrage_litereimpare(m, lm); break; case 3: calculeaza_suma(m, lm); break; default: printf("Optiune gresita.\n"); } } while (opt!= 0); return 0; }
Editor is loading...
Leave a Comment