Cosa si intende per tipo status?
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
c'è un esercizio che mi richiede di definire un tipo status i cui possibili valori sono ERROR e OK
Risposte
"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.
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;
}
#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;
}
Prova a riscriverla così:
P.S. Mancano le specifiche di parametro nelle printf() delle if nella funzione main().
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().

grazie mille!!...mi stava facendo impazzire sta funzione
cosa intendi per specifiche di parametro nelle printf?

cosa intendi per specifiche di parametro nelle printf?
"Jazz_lover":
cosa intendi per specifiche di parametro nelle printf?
Giusto, cosa intendo?

Sbagliato a scrivere, intendevo specifiche di formato/conversione.

In pratica manca un %d in queste due printf()
if (cut == ERROR) { printf("\nERROR\n", cut); } if (cut == OK) { printf("\nOK\n", cut); }
"anonymous_be1147":
[quote="Jazz_lover"]cosa intendi per specifiche di parametro nelle printf?
Giusto, cosa intendo?

Sbagliato a scrivere, intendevo specifiche di formato/conversione.

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?


"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

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

Intendevo riscriverle per esempio così:
if (cut == ERROR) { printf("\nERROR(%d)\n", cut); } if (cut == OK) { printf("\nOK(%d)\n", cut); }
"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

