- Buongiorno a tutti mi sono appena iscritto, ho un problema con la funzione Char, sono nuovo con la programmazione e mi piace così tanto che mi dedico molto. Per farmi capire meglio dovrei postare l'intero programma che a dire il vero sono solo 50 righe.
//////////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
char *cambio(int);
main(){
srand(time(NULL));
int i=0, a=0;
char cella[5];
//****************************************************************************************
for (i=0;i<5;i++)
{
a=rand()%10;
if (i==0) { cella[i]=*cambio(a); }
else if (i==1) { cella[i]=*cambio(a); }
else if (i==2) { cella[i]='.'; }
else if (i==3) { cella[i]=*cambio(a); }
else if (i==4) { cella[i]=*cambio(a); }
}
//****************************************************************************************
printf ("\n\n eccolo ufficialmente:\n");
printf ("\n");
for(i=0; i<5; i++)
{
if (i==0) printf ("\t.* %c ",cella[i]);
else if (i==1) printf ("%c * ",cella[i]);
else if (i==2) printf (".%c. ",cella[i]);
else if (i==3) printf ("* %c ",cella[i]);
else if (i==4) printf ("%c *.",cella[i]);
}
} // FINE MAIN
char *cambio(int x)
{
static char nom[1+1];
switch (x)
{
case 0:{strcpy (nom,"0");break;}
case 1:{strcpy (nom,"1");break;}
case 2:{strcpy (nom,"2");break;}
case 3:{strcpy (nom,"3");break;}
case 4:{strcpy (nom,"4");break;}
case 5:{strcpy (nom,"5");break;}
case 6:{strcpy (nom,"6");break;}
case 7:{strcpy (nom,"7");break;}
case 8:{strcpy (nom,"8");break;}
case 9:{strcpy (nom,"9");break;}
return nom;
}// Switch
}// Funzione
//////////////////////////////////////////////////////////////////////////////////////////
Ho cambiato il pc da una settimana, sono passato dall' XP al windows 10 e prima che lo cambiassi questo programmino funzionava.
Ora quando eseguo, non mi stampa più i 4 numeri che richiedo, ma solo 4 effe. C'è qualcosa che ho dimenticato di installare ? o c'è un errore che non riesco a vedere ?