Domanda:
Problemino programma in c?
Marco
2009-09-28 07:45:26 UTC
include
int main ()
{
int main ;
printf("Ciao!\n");
printf("Come ti chiami?\n");
scanf("%d");
printf("hai digitato %d\n",nome);

printf("quanti anni hai?\n");
scanf("%d");
printf("hai digitato %d\n",età);
printf("ciao %d\n",nome);

return 0;
}
questo è il programma ke vorrei creare in c però mi dice ke "nome" nn è dichiarato; come faccio a inserirlo

poi vorrei anche chiedere gli anni e poi ala fine farmi uscire un file di text con un riepilogo...
vorrei ke mi dicesse:" hai digitato ...(nome inserito)
hai digitato...età

cmq grz a tt
Tre risposte:
darkjoker
2009-09-28 08:34:39 UTC
ciao.. :) mi sa che hai fatto un po di confusione.. ti consiglio di rileggere qualche guida al c :)



prima di tutto non hai dichiarato le variabili che stai usando, ossia nome e eta (eta senza accento nel C :)

Poi l'int main ; non serve a nulla :D

Poi, il nome che verrà inserito è un'array di caratteri , non un numero intero, quindi va dichiarato come char nome [500]; (500 è il numero massimo di caratteri che conterrà l'array).. mentre età, essendo un numero lo puoi dichiarare come int.

La funzione scanf ha la funzione di leggere da standard input (tastiera) un'elenco di dati che sono preannunciati da stringhe di formato, ossia i %s, %d, etc..

Quando leggi il nome (che è una stringa) devi usare la stringa di formato %s (s => string), e come secondo argomento devi passare il puntatore al primo elemento dell'array di caratteri nome, nel quale verrà messo tutto ciò che viene letto..

Nel printf che fai del nome stessa cosa, devi mettere un %s al posto del %d (%d sta per un numero decimale).

Nella seconda lettura non passi il puntatore alla variabile eta alla funzione scanf..

Il secondo argomento deve però essere un puntatore, e visto che eta è un semplice intero per poter passare il suo puntatore devi usare la &, che ritorna l'indirizzo a cui punta una variabile..



Il programma corretto te l'ho scritto http://pastebin.com/m2fe3854d



Bye ^^
Tizio 008
2009-09-28 20:35:48 UTC
ma hai sempre gli stessi problemi, le risposte ti vengono date, ma poi non le prendi in considerazione?



a) il come ti chiami non puoi prenderlo con %d (a meno di non avere un numero per nome, come i bassotti), ma serve %s, p.es.

char nome[DIMENSIONE_BUFFER];

scanf("%s", nome);



b) togli int main; dalla dichiarazione delle var locali



int main()

{

// codice, senza int main;

return 0;

}
Frank Quiz
2009-09-28 14:57:54 UTC
cambia int main alla 4 riga con int nome;

aggiungi sotto int eta; (senza accento) oppure int nome,eta;

cambia i due scanf in scanf("%d",nome); e scanf("%d",eta);

dovrebbe essere tutto a posto poi.


Questo contenuto è stato originariamente pubblicato su Y! Answers, un sito di domande e risposte chiuso nel 2021.
Loading...