Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Attenti a Poco F7: può essere il best buy del 2025. Recensione
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Poco F7 5G, smartphone che punta molto sulle prestazioni grazie al processore Snapdragon 8s Gen 4 e a un display AMOLED da ben 6,83 pollici. La casa cinese mantiene la tradizione della serie F offrendo specifiche tecniche di alto livello a un prezzo competitivo, con una batteria generosissima da 6500 mAh e ricarica rapida a 90W che possono fare la differenza per gli utenti più esigenti.
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2007, 14:18   #1
schumijr_87
Junior Member
 
Iscritto dal: Nov 2007
Messaggi: 2
Alternativa Esercizio??

Per chi è tanto paziente da elaborare un'alternativa a questo esercizio:

#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>

char* inputStr()
{
unsigned long long i = 0;
char c;
char* str = (char*)malloc(2);

do
{
c = getchar();
str[i++] = c;
str = (char*)realloc(str, i+3);
if (c == '\n') {str[--i] = ' '; str[i+1] = '\0';}
}
while(c != '\n');

return str;
}

void str_assign(char** s1, unsigned long r, char* s2)
{
unsigned long i;
for(i = 0; s2[i] != '\0'; i++);
char* s3 = (char*)malloc(i+1);
for(i = 0; s2[i] != '\0'; i++) s3[i] = s2[i]; s3[i] = '\0';
s1[r] = s3;
}

void print(char** a, unsigned long end)
{
unsigned long i;
for(i = 0; i <= end; i++) printf("%lu) %s\n", i, a[i]);
}

void print2(unsigned long* a, unsigned long end)
{
unsigned long i;
for(i = 0; i <= end; i++) printf("%lu) %lu\n", i, a[i]);
}


unsigned long conta_parole(char* testo, char** parole, unsigned long* occorrenze)
{
unsigned long l, j, i = 0, tot_parole = 0;
int isparola = 0, gia_inserita = 0;
char* parola = (char*)malloc(2);

for(l = 0; testo[l] != '\0'; l++)
{
if ( !(isspace(testo[l])) && !(ispunct(testo[l])) )
{
parola[i++] = testo[l];
parola = (char*)realloc(parola, i+2);
isparola = 1;
}
else if (isparola == 1)
{
isparola = 0;
parola[i] = '\0';
if (tot_parole >= 1)
{
for(j = 0; j < tot_parole; j++)
{
if(strcmp(parole[j], parola)==0) {occorrenze[j]++; gia_inserita = 1;}
}

if (!gia_inserita)
{
str_assign(parole, tot_parole, parola);
occorrenze[tot_parole]++;
tot_parole++;

parole = (char**)realloc(parole, (tot_parole+1)*sizeof(char*));
occorrenze = (unsigned long*)realloc(occorrenze, (tot_parole+1)*sizeof(unsigned long));
occorrenze[tot_parole] = 0;
} else gia_inserita = 0;
}
else
{
str_assign(parole, 0, parola);
occorrenze[0]++; tot_parole++;
}
i = 0;
}
}

return tot_parole-1;
}

void ordina_parole(char** parole, unsigned long* occorrenze, unsigned long tot)
{
//bubble sort

unsigned long i, scambi = 0;

do
{
for(i = 0, scambi = 0; i < tot-1; i++)
{
if (occorrenze[i] < occorrenze[i+1])
{
unsigned long appoggio1 = occorrenze[i];
occorrenze[i] = occorrenze[i+1];
occorrenze[i+1] = appoggio1;

char* appoggio2 = parole[i];
parole[i] = parole[i+1];
parole[i+1] = appoggio2;

scambi = 1;
}
}
}
while(scambi);


for(i = 0; i < tot; i++)
{
printf("%s %lu\n", parole[i], occorrenze[i]);
}
}

int main()
{
char* testo = inputStr();
char** parole = (char**)malloc(sizeof(char*));

unsigned long* occorrenze = (unsigned long*)malloc(sizeof(unsigned long)*50); occorrenze[0] = 0;
unsigned long tot = conta_parole(testo, parole, occorrenze);

//print2(occorrenze, tot);printf("\n");
//print(parole, tot);printf("\n");

ordina_parole(parole, occorrenze, tot);
}
schumijr_87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 14:29   #2
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 18:25   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Quote:
Originariamente inviato da schumijr_87 Guarda i messaggi
Per chi è tanto paziente da elaborare un'alternativa a questo esercizio:
Non si tratta di pazienza..
Le regole d'oro del forum:
1- Usa i tag CODE
2- Indenta il codice
3- Non chiedere di fare i compiti al posto tuo e se devi farlo almeno inventa qualche bella scusa che ci faccia ridere come fanno tutti
4- Porgi chiaramente la tua richiesta. Nel tuo caso... perché dovrei leggere e soprattutto sforzarmi di capire quel codice (che tra l'altro non è neanche commentato) quando molto più semplicemente potresti spiegarci tu di che si tratta?
5- Benvenuto!
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 18:51   #4
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
O meglio non credere che siamo dei brufolosi e occhialuti programmatori che si eccitano a vedere un listato c e che non hanno niente di meglio da fare che farti i compitini.
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
L'Italia saluta anche IVECO: finalizzata...
Summer Black Friday: spendi meno e godit...
Half-Life 3? No, Gabe Newell produrr&agr...
Apple al lavoro su un sensore che "...
TSMC vittima di spionaggio industriale s...
Cooler Master MasterFrame 500: un flusso...
Apple accelera sull'IA interna: c'&egrav...
I robotaxi arrivano in Europa: Lyft e Ba...
Ancora voci sul mega tablet pieghevole d...
Un computer quantistico con 10.000 qubit...
AVM cambia nome e faccia: ora si chiama ...
SatNet ha lanciato altri satelliti per l...
Flop autonomia per la Fiat Grande Panda ...
2 TV LG da favola in super sconto: OLED ...
Potrebbe essere fallito il test del prot...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v