PDA

View Full Version : [c]niente risultato


Vheon
16-10-2007, 21:18
secondo voi con questo codice che dovrebbe uscire?

#include <stdio.h>
#include <conio.h>

main()
{

int a, b, c;

printf("inserisci il numero \n");
scanf("%d", &a);
printf("inserisci il numero \n");
scanf("%d", &b);
c=a+b;
printf("%dn", c);
getch();
}

wizard1993
16-10-2007, 21:21
la somma di a+b forse?

dad_89
16-10-2007, 21:51
Codice coretto:

#include <stdio.h>

void main(){
int a, b, c;
printf("inserisci il numero \n");
scanf("%d", &a);
printf("inserisci il numero \n");
scanf("%d", &b);
c = a + b;
printf("%d\n", c);
getchar();
}

1. E' getchar(); e non getch();
2. conio.h in quetso caso non serve assoultamente a nulla, se non ad appesantire il sorgente.
3. E' preferibile dichiarare il main come void oppure int main(void);

Vheon
16-10-2007, 21:55
teoricamente si, ma: compilo, e non ci sono errori... inserisco i primi 2 numeri, do invio, e la finestra dell'eseguibile si chiude

variabilepippo
16-10-2007, 21:59
E' preferibile dichiarare il main come void

Questa dove l'hai letta? :eek:

dad_89
16-10-2007, 22:04
teoricamente si, ma: compilo, e non ci sono errori... inserisco i primi 2 numeri, do invio, e la finestra dell'eseguibile si chiude
Eseguilo da prompt, perchè funziona benissimo.

Questa dove l'hai letta? :eek:
void = valore nullo;
Il main non restituisce nessun tipo di valore se non lo stdout del programma.

variabilepippo
16-10-2007, 22:16
Il main non restituisce nessun tipo di valore se non lo stdout del programma.


Se fossi in te ripasserei lo standard ANSI C :):


5.1.2.2.1 Program startup
The function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int and with no
parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be
used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent;


Per un piccolo approfondimento da un'occhiata all'articolo void main(void) - the Wrong Thing (http://users.aber.ac.uk/auj/voidmain.shtml).

dad_89
16-10-2007, 22:33
Mi sa che il libro consigliato dal prof, è un pò bugato allora =|
Sorry per l'imprecisazione.

variabilepippo
16-10-2007, 22:35
Mi sa che il libro consigliato dal prof, è un pò bugato allore =|


Quale libro vi ha consigliato?


Sorry per l'imprecisazione.


Può capitare a chiunque... ;)

Vheon
16-10-2007, 22:36
come faccio a farlo partire dal prompt?

variabilepippo
16-10-2007, 22:38
come faccio a farlo partire dal prompt?


Il programma o la compilazione dello stesso?

Nel primo caso basta digitare il nome dell'eseguibile nel Prompt del DOS (lo trovi tra gli accessori di Windows) dopo essersi posizionati nella cartella giusta e premere RETURN. In ogni caso quel programma non fa ciò che vorresti.

Nel secondo dipende dal compilatore C.

Vheon
16-10-2007, 22:44
In ogni caso quel programma non fa ciò che vorresti.

Perchè?

dad_89
16-10-2007, 22:47
Quale libro vi ha consigliato?
C Didattica è programmazione :(

variabilepippo
16-10-2007, 22:51
Perché?

Per come è definita la funzione getchar() nello standard ANSI/ISO. Dovresti pulire il buffer di ingresso con fflush(stdin) prima di richiamarla, però non è detto che tutti i compilatori lo svuotino effettivamente.

Per non complicarti la vita, visto che sei alle prime armi, ti conviene includere l'header <stdlib.h> e sostituire la getchar() con una system("PAUSE"). In seguito imparerai metodi più eleganti...

PS.


C Didattica è programmazione


Autore?