Untitled
unknown
c_cpp
a year ago
1.6 kB
9
Indexable
/*
Scrivere un sottoprogramma check che ricevute due stringhe, tentativo e soluzione, di ugual lunghezza (è senz’altro così) rappresentanti due vocaboli, restituisce una stringa contenente:
• = se il carattere in posizione i di tentativo è uguale al carattere in posizione i di soluzione,
• + se il carattere in posizione i di tentativo è uguale ad un carattere di soluzione in posizione j con j ̸= i,
• X se il carattere in posizione i di tentativo non appartiene a soluzione.
Per esempio, se il sottoprogramma riceve in ingresso:
tentativo: "parco"
soluzione: "torre"
il sottoprogramma restituisce la stringa "XX=X+".
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* check(char *soluzione, char *tentativo)
{
int len = strlen(soluzione);
char *risultato = (char*)malloc((len+1)*sizeof(char));
if(risultato == NULL)
{
return NULL;
}
risultato[len] = '\0';
for(int i=0; i<len; i++)
{
if(tentativo[i] == soluzione[i])
{
risultato[i] = '=';
}
else{
int trovato =0;
for(int j=0; j<len && !trovato; j++)
{
if(i != j && tentativo[i] == soluzione[j])
{
trovato = 1;
}
}
if(trovato == 0)
{
risultato[i] = 'X';
}else{
risultato[i] = '+';
}
}
}
return risultato;
}
int main() {
return 0;
}Editor is loading...
Leave a Comment