Cosa si intende per tipo status?

Jazz_lover
cos'è un tipo status in un programma in c?
c'è un esercizio che mi richiede di definire un tipo status i cui possibili valori sono ERROR e OK

Risposte
Jazz_lover
"anonymous_be1147":
Se puoi posta l'intero listato o mandamelo tramite PM, perché è difficile scoprire dov'è il bug senza vedere il sorgente. ;)


te l'ho mandata tramite pm...ti ringrazio.

Jazz_lover
lo posto anche qui.....il problema maggiore è la funzione length

#include
#include
#define N 30
#define ERROR 0
#define OK 1

typedef int status;


int readline(char s[])
{
int i;
i=0;
printf("scrivi una riga di testo: ");
while(s[i-1]!='\n')
{
s=getchar();
i++;
}
return i-1;
}



status cutString(char s[],int n)
{
int j;

printf("\nla stringa diventa:");
j=0;
while(j {
printf("%c", s[j]);
j++;
}

if(n>=0)
{
return OK;
}
else
{
return ERROR;
}

}



int length(char t[])
{
int k;


printf("scrivi una riga di testo: ");

for(k=0; t[k]!='\n';k++)
{
scanf("%c", &t[k]);
}

return k-1;
}



status concatString( char s[], char t[], int Lung_s, int Lung_t)
{
int z,x,Lung_unione;
int y;
char unione[N];

y=0;
for(z=0;z {
unione[y]=s[z];

y++;
}

for(x=0;x {

unione[y]=t[x];

y++;
}

Lung_unione=y;

if(y<=N)
{

return OK;

printf("\nLa stringa diventa: ");
for(y=0;y {
printf("%c", unione[y]);

}
}
else
{
return ERROR;
}


}

main()
{
char s[N],t[N];
int Lung_s,Lung_t,n;


status cut=-1;
status concat=-1;

Lung_s=readline(s);
printf("\nIl numero dei caratteri letti e' %d\n", Lung_s);


printf("inserisci un intero n: ");
scanf("%d", &n);


cut=cutString(s,n);
if(cut==ERROR)
{
printf("\nERROR\n", cut);
}
if(cut==OK)
{
printf("\nOK\n", cut);
}

Lung_t=length(t);
printf("\nLa stringa t ha %d caratteri\n", Lung_t);


concat=concatString(s,t,Lung_s,Lung_t);
printf("%c", concat);


system("PAUSE");
return 0;
}

anonymous_be1147
Prova a riscriverla così:
int                                                                                                               
length(char t[])                                                                                                  
{                                                                                                                 
        int             k, c;                                                                                     
                                                                                                                                                                                                                                    
        k = 0;                                                                                                    
                                                                                                                  
        printf("scrivi una riga di testo: ");                                                                     
                                                                                                                  
        /* salta eventuali caratteri d'INVIO presenti in input */                                                 
         while((c = getchar()) == '\n' /* || c == ' ' || c == '\t' */)
                                                                                                                  
        t[k++] = c;                                                                                               
        do {                                                                                                      
                scanf("%c", &t[k]);                                                                               
        } while (t[k++] != '\n');                                                                                 
                                                                                                                  
        return k - 1;                                                                                             
}


P.S. Mancano le specifiche di parametro nelle printf() delle if nella funzione main(). ;)

Jazz_lover
grazie mille!!...mi stava facendo impazzire sta funzione :-D

cosa intendi per specifiche di parametro nelle printf?

anonymous_be1147
"Jazz_lover":
cosa intendi per specifiche di parametro nelle printf?

Giusto, cosa intendo? :shock:
Sbagliato a scrivere, intendevo specifiche di formato/conversione. :-D

In pratica manca un %d in queste due printf()
if (cut == ERROR) {                                                                                       
                printf("\nERROR\n", cut);                                                                     
        }                                                                                                         
        if (cut == OK) {                                                                                          
                printf("\nOK\n", cut);                                                                        
        }

Jazz_lover
"anonymous_be1147":
[quote="Jazz_lover"]cosa intendi per specifiche di parametro nelle printf?

Giusto, cosa intendo? :shock:
Sbagliato a scrivere, intendevo specifiche di formato/conversione. :-D

In pratica manca un %d in queste due printf()
if (cut == ERROR) {                                                                                       
                printf("\nERROR\n", cut);                                                                     
        }                                                                                                         
        if (cut == OK) {                                                                                          
                printf("\nOK\n", cut);                                                                        
        }
[/quote]

e come dovrei cambiarlo? :-D ...brutto essere agli inizi :-D

Jazz_lover
"anonymous_be1147":
Prova a riscriverla così:
int                                                                                                               
length(char t[])                                                                                                  
{                                                                                                                 
        int             k, c;                                                                                     
                                                                                                                                                                                                                                    
        k = 0;                                                                                                    
                                                                                                                  
        printf("scrivi una riga di testo: ");                                                                     
                                                                                                                  
        /* salta eventuali caratteri d'INVIO presenti in input */                                                 
         while((c = getchar()) == '\n' /* || c == ' ' || c == '\t' */)
                                                                                                                  
        t[k++] = c;                                                                                               
        do {                                                                                                      
                scanf("%c", &t[k]);                                                                               
        } while (t[k++] != '\n');                                                                                 
                                                                                                                  
        return k - 1;                                                                                             
}


P.S. Mancano le specifiche di parametro nelle printf() delle if nella funzione main(). ;)


questa funzione mi da dei problemi..nel senso che non mi legge poi piu il carattere della prima cella :shock:

Jazz_lover
niente...l'ho risolto questo problema....solo puoi dirmi cosa intendevi nel modificare le printf? grazie ancora :-D

anonymous_be1147
Intendevo riscriverle per esempio così:
if (cut == ERROR) {
      printf("\nERROR(%d)\n", cut);
}
if (cut == OK) {
     printf("\nOK(%d)\n", cut);
} 

Jazz_lover
"anonymous_be1147":
Intendevo riscriverle per esempio così:
if (cut == ERROR) {
      printf("\nERROR(%d)\n", cut);
}
if (cut == OK) {
     printf("\nOK(%d)\n", cut);
} 


ah si,,,in questo modo cosi stampa 0 o 1 giusto?...l'ho fatto :wink: ...grazie mille ancora :-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.