Ciao a tutti
Definire un tipo di dato parola_t che rappresenta una parola nella lingua italiana e la sua traduzione inglese (due stringhe ciascuna di al massimo 30 caratteri). Scrivere un programma che chiede all'utente 10 parole italiane e la loro traduzione in inglese. Il programma esegue le seguenti elaborazioni: * Il programma cerca quei termini italiani che sono presenti anche nella lingua inglese ma con un altro significato e li stampa a video. * Il programma cerca quei termini italiani che hanno più traduzioni in inglese Come esempio si consideri la seguente lista di parole: scope brooms
scopo scope
case houses
scatola case
goal goal
ciao hello
ciao hi
ballo ball
palla ball
ciao bye
Per il primo punto il programma stamperà a video:
scope brooms *
scopo scope
case houses *
scatola case
Per il secondo punto il programma stamperà a video:
ciao hello
ciao hi
ciao bye
Non capisco perché nel mio programma l'esecuzione non entra mai in alcuni if come per esempio:
grazie in anticipo per la risposta
C:
#include <stdio.h>
#define MAXC 20
#define MAXP 2
typedef struct{
char ita[MAXC];
char ing[MAXC];
}parola_t;
int main(){
int i, j, max, c, indice_max;
parola_t traduzioni[MAXP];
for(i=0; i<MAXP; i++){
printf("inserire parola\n");
scanf("%s", traduzioni[i].ita);
printf("inserire traduzione\n");
scanf("%s", traduzioni[i].ing);
}
for(i=0; i<MAXP; i++){
for(j=i+1; j<MAXP; j++){
if(traduzioni[i].ita == traduzioni[j].ing)
printf("%s-%s/%s-%s\n", traduzioni[i].ita, traduzioni[i].ing, traduzioni[j].ita, traduzioni[j].ing);
}
}
for(i=0, max=0, c=0; i<MAXP; i++){
for(j=i; j<MAXP;j++){
if(traduzioni[i].ita==traduzioni[j].ita && traduzioni[j].ing != traduzioni[j].ing){
c++;
}
}
if(c>max)
indice_max = i;
c=0;
}
for(i=0; i<MAXP; i++){
if(traduzioni[i].ita==traduzioni[indice_max].ita)
printf("%s %s\n",traduzioni[i].ita, traduzioni[i].ing);
}
return 0;
}
scopo scope
case houses
scatola case
goal goal
ciao hello
ciao hi
ballo ball
palla ball
ciao bye
Per il primo punto il programma stamperà a video:
scope brooms *
scopo scope
case houses *
scatola case
Per il secondo punto il programma stamperà a video:
ciao hello
ciao hi
ciao bye
Non capisco perché nel mio programma l'esecuzione non entra mai in alcuni if come per esempio:
C:
if(traduzioni[i].ita == traduzioni[j].ing)
printf("%s-%s/%s-%s\n", traduzioni[i].ita, traduzioni[i].ing, traduzioni[j].ita, traduzioni[j].ing);