Untitled
unknown
plain_text
2 years ago
2.1 kB
9
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