Segui il video qui sotto per vedere come installare il nostro sito come web app sulla tua schermata principale.
Nota: Questa funzionalità potrebbe non essere disponibile in alcuni browser.
Pubblicità
int strcmp(frasi[i].parola, frasi[i-s].parola);, è sbagliato per altro.Io ti consigliavo di utilizzare strncmp, comunque:Potresti spiegarmi come risolvere la questione dello strcmp?
if(i=1 && strcmp(frasi[i].parola, frasi[i-s].parola) !=0){;}
else{frasi[i].conta+1;}
}
}
strcmp(stringa1, stringa2) == 0.i=1 è un assegnamento, e visto che assegni il valore 1, viene valutato sempre a true. if(istrcmp(frasi[i].parola, frasi[i-s].parola) == 0){
frasi[i].conta++;
}
frasi[i].conta+1;, questo incrementa il valore e scarta il risultato. In pratica l'incremento non viene mai memorizzato. Puoi usare l'operatore di incremento come ho fatto li sopra, oppure anche fare frasi[i].conta+=1 (preferibile il primo, ovvero ++, quando si tratta di 1 sola unità).#include <stdio.h>
#include <string.h>
int main(){
int i, s;
struct insieme {
char parola[26+1];
int conta;
};
struct insieme frasi[10];
printf("Inserisci le parole\n");
for(i=0;i<10;i++){
for(s=0;s<10;s++){
scanf("%s", &frasi[i].parola);
if(strcmp(frasi[i].parola, frasi[i-s].parola) !=0){
frasi[i].conta++;
}
}
}
for(i=0;i<100;i++){
printf("la parola: %s è ripetuta : %d", frasi[i].parola, frasi[i].conta);
}
return 0;
}
frasi[100]. Accedi già linearmente al vettore usando solo una variabile, quindi puoi rimuovere il ciclo interno (quello che usa s come contatore).// scanf elemento frasi[0].parola
for(int i=1; i < 100; i++) {
// scanf....
// FOR ogni singolo elemento del vettore...
// IF strcmp(frasi[i-1].parola, frasi[i].parola) == 0
// ENDFOR
}
#include <stdio.h>
#include <string.h>
int main(){
int i, s;
struct insieme {
char parola[26+1];
int conta;
};
struct insieme frasi[10];
printf("Inserisci le parole\n");
for(i=0; i<10; i++){
for(s=1; s<=i; s++){
scanf("%s", &frasi[i].parola);
int strcmp(frasi[i].parola, frasi[i-s].parola);
if( i==1 && strcmp(frasi[i].parola, frasi[i-s].parola) !=0)
else{frasi[i].conta++;}
}
}
for(i=0; i<10; i++){
printf("la parola: %s è ripetuta : %d", frasi[i].parola, frasi[i].conta);
}
return 0;
}
int main(){
int i, s;
struct insieme {
char parola[26+1];
int conta;
};
struct insieme frasi[5];
printf("Inserisci le parole\n");
for(i=0;i<10;i++){
for(s=1;s<=i;s++){
scanf("%s", &frasi[i].parola);
if(i==1 && strcmp(frasi[i].parola, frasi[i-s].parola) ==0){
frasi[i].conta++;
}
else;
}
}
for(i=0;i<10;i++){
printf("la parola: %s ripetuta : %d\n", frasi[i].parola, frasi[i].conta);
}
return 0;
}
void aggiungi_o_incrementa_contatore(char *parola)
{
la tua funzioncina di ricerca e aggiornamento
}
int main() {
for (;;) {
leggi linea
invio linea vuota ? esci (break)
do {
parola = ricava_parola(linea);
aggiungi_o_incrementa_contatore(parola)
} while (parola);
}
Stampa banalmente parole e contatore
}
anche io l'ho interpretato così ma forse meglio iniziare inserendo parole a mano (magari non 100, ma 10)1) leggi una riga, che dal testo puo avere piu parole separate da spazi.
scanf("%s", &parola);
int found;
int countInsert;
printf("Inserisci 5 parole battendo invio al termine di ciascuna\n");
scanf("%s", parola);
countInsert = 1;
strcpy(frasi[0].parola, parola);
for(i=1;i<5;i++){
found = 0;
scanf("%s", parola);
//continua tu
Di nulla. L'importante è aver capito il procedimento.Ti ringrazio molto credo di avere risolto