Funzione Char senza più risposta

di il
1 risposte

Funzione Char senza più risposta

- 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 ?

1 Risposte

  • Re: Funzione Char senza più risposta

    Certo che è sbagliato. Se devi restituire un char la funzione deve essere

    char funzione(...)

    e non devi usare puntatori a stringhe. Nella funzione usa un char e fai un return della variabile. Nel main usa la funzione e basta.
Devi accedere o registrarti per scrivere nel forum
1 risposte