Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define N 26
- char indexof(char c) {
- return c - 'a';
- }
- char *conta_caratteri(char *parola) {
- char *alfabeto = malloc(N);
- for (int i=0; i < N; ++i)
- alfabeto[i] = 0;
- for (char *c = parola; *c != '\0'; ++c)
- alfabeto[indexof(*c)] += 1;
- return alfabeto;
- }
- int conta_occorrenze(char *paroliere, char *parola) {
- char *a1 = conta_caratteri(paroliere);
- char *a2 = conta_caratteri(parola);
- int min;
- int i = 0;
- while (a2[i] == 0) ++i;
- min = a1[i] / a2[i];
- for (int j = i+1; j < N; ++j) {
- if (a2[j] != 0 && (a1[j] / a2[j]) < min)
- min = a1[j] / a2[j];
- }
- return min;
- }
- void scrivi_r(FILE *fp, int n) {
- if (n == 0) return;
- fputs("algoritmi", fp);
- scrivi_r(fp, n-1);
- }
- void scrivi_file(char *paroliere) {
- int n = conta_occorrenze(paroliere, "algoritmi");
- if (n > 0) {
- FILE *fp = fopen("algoritmi.dat", "wb");
- scrivi_r(fp, n);
- fclose(fp);
- }
- }
- int main() {
- char c[] = "oadpmicasfpjjgklllrgiirpppqaxotbrtasdmi";
- scrivi_file(c);
- }
Advertisement
Add Comment
Please, Sign In to add comment