Untitled

 avatar
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