PDA

Visualizza la versione completa : [c] problema ^___^


Peppewt
14-05-2004, 19:48
Ciao raga mi potete aiutare a risolvere questo problema?
ho creato un piccolo programma, come inizio, x nn riesco a capire cosa sbaglio, l'errore sta dove risp. "ok ricapitoliamo....... di anni 40, ma anzicch il 40 mi esce un numeraccio, xk??? Help pls!!!

#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

#define MAXSTRING 100

int main(void)

{
char c, name[MAXSTRING];
int i, x, sum = 0;

printf("\n\nHi!! Come ti kiami? ");
for (i = 0; (c = getchar()) !='\n'; ++i) {
name[i] = c;
if (isalpha(c))
sum += c;
}
name[i] = '\0';
printf("\nQuanti anni hai? ");
scanf("\n%d", &x);
if (x < 30)
{
printf("\n\n\n%s\n\n", " Ahahah, Come no!!! ");
}
else if (x >= 32)
{
printf("%s\n%s\n%d\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce, di anni",
"40");
}
system("pause");
return 0;
}

Tnx Peppe...
Ps: entropic666 nn ti dispiace se l'ho postato anche in public, vero?

andrea_NET-_DSL
14-05-2004, 20:05
Anche non capendo lo scopo del tuo programma(chiede un nome ma poi ne stampa uno "fisso" scritto a priori :confused: ) l'errore su questo printf

printf("%s\n%s\n%d\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce, di anni",
"40");
perch indichi di stampre due stringhe (%s %s) e un intero(%d) ma senza indicare le variabili...

Se vuoi stampare l'et immessa in input fai cosi':


printf(" Ok,ricapitoliamo: Danilo Caracciolo di anni %d",x);

mentre se ti basta stampre sempre lo stesso messaggio(ossia 40 anni fai cosi'):

printf(" ...di anni 40");

:ciauz:

Michele Facchin
14-05-2004, 20:22
printf("%s\n%s\n%d\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce, di anni",
"40");
[/B]

La sintassi giusta :



printf("%s\n%s\n%d\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce, di anni",
40);


Infatti "40" equivale ad una stringa in C, mentre 40 (senza le virgolette) non una stringa e quindi pu essere un intero (%d).

Bye

andrea_NET-_DSL
14-05-2004, 20:40
si ma per stampre un testo e un intero che NON variano mai,NON essendo VARIABILI basta fare un printf(" stampa quello che vuoi");

A livello di sintassi funzione cmq ma nn ha senzo :)

:ciauz:

Peppewt
15-05-2004, 15:24
[quote]
Anche non capendo lo scopo del tuo programma(chiede un nome ma poi ne stampa uno "fisso" scritto a priori ) l'errore su questo printf

printf("%s\n%s\n%d\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce, di anni",
"40");
perch indichi di stampre due stringhe (%s %s) e un intero(%d) ma senza indicare le variabili...


Xk andando a capo e chiudendo le virgolette bisogna dirgli che una stringa... almeno cos ho capito :quipy:
Poi ho scritto questo programma solo sfottere un amico, ehehehe..
Cmq. mi 6 stato di aiuto, ho capito qual'era il problema e l'ho risolto... tnxxxxx.... :gren: :gren:
Ps. il problema si strovava effettivamente in questo print: si poteva modificare in 2 modi:

1)printf("%s\n%s\n%d\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce, di anni ",
40);

2)printf("%s\n%s\n%s\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce,",
"di anni 40");

Oppure facendo inserire il valore che riceveva in input...
printf("%s\n%s\n%d\n\n", "ok, ricapitoliamo:",
"Danilo Caracciolo nato a Lecce, di anni",
x);

Bye...
Peppe...

Peppewt
15-05-2004, 15:26
[quote]
si ma per stampare un testo e un intero che NON variano mai,NON essendo VARIABILI basta fare un printf(" stampa quello che vuoi");

A livello di sintassi funzione cmq ma nn ha senzo

Lo so ma essendo la prima volta ke cerco di scrivere un, kiamiamolo, programma nn ci ho fatto caso.. cmq. tnx x il rinfresco...
Bye...
Peppe...

andrea_NET-_DSL
15-05-2004, 15:51
di nulla :)
ciao :gren: :gren:

:ciauz:

Loading