PDA

View Full Version : [dev c++] Perchè non va???


MinaVagante
31-12-2007, 13:21
Perchè questo programma non funge??
#include<stdio.h>
#include<conio.h>

main()
{ int a;
char s;
printf("Inserisci un numero:");
scanf("%d",&a);
printf("Inserisci un carattere:");
scanf("%c",&s);
printf("%d %c",a,s);
getch();
}
grazie a tutti

Dr.Speed
31-12-2007, 14:37
cosi dovrebbe funzionare :)

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

void main()
{
int a;
char s;
printf("Inserisci un numero:");
scanf("%d",&a);
printf("Inserisci un carattere:");
scanf("%c",&s);
printf("%d %c",a,s);
getch();
}

MinaVagante
31-12-2007, 16:55
aggiungendo solo void??? perchè io su internet ho trovato che basta aggiungere fflush(stdin) prima dello scanf del carattere e c'era scritto per svuotare il buffer,cioè???
con la tua soluzione mi da errore

Dr.Speed
31-12-2007, 16:58
che errore ti da?

MinaVagante
31-12-2007, 17:43
mi segna la riga int a
e mi scrive main must return int

Andrea16v
31-12-2007, 17:48
...manca un return 0; come ultima riga del main() :)

MinaVagante
01-01-2008, 11:27
mi continua a dire sempre la stessa cosa anche con return :(

ctcodre
01-01-2008, 11:35
prova cosi


#include ...

int main() {
...
getch();
return 0;
}

variabilepippo
01-01-2008, 11:36
In qualsiasi libro decente sul C vengono illustrate le definizioni corrette della funzione main:

int main(void)
int main (int argc, char *argv[])

Sono possibili variazioni sul tema ma main deve restituire un intero e NON void (http://users.aber.ac.uk/auj/voidmain.shtml)!

Mr Emme
01-01-2008, 11:58
la funzione main restituisce un int

Andrea16v
01-01-2008, 14:25
mi continua a dire sempre la stessa cosa anche con return :(

Dichiara il main come int main() e vedi che funziona.... :)

MinaVagante
01-01-2008, 15:35
l'ho fatto così
int main()
{ int a;
char s;
printf("Inserisci un numero:");
scanf("%d",&a);
printf("Inserisci un carattere:");
scanf("%c",&s);
printf("%d %c",a,s);
getch();
return 0;
}



viene compilato correttamente, ma poi non fa quello che vorrei facesse, solamente mettendo fflush(stdin) funziona correttamente

Ditemi anche perchè questo programma non funge, è un pezzo di un semplice programma che calcola le soluzioni complesse di un equazione di secondo grado, ma la parte reale quando lo faccio partire mi scrive Re=0.0000. Perchè tutto ciò??

main()
{ int a,b;
float Re;
printf("Inserisci a,b:\n");
scanf("%d %d",&a,&b);
Re=(-b)/2*a;
printf("La parte rale e':%f",Re);
getch();
}

MinaVagante
01-01-2008, 19:01
Aiutoooooooooo :D

MinaVagante
03-01-2008, 08:56
Qualcuno può darmi una mano???

ctcodre
03-01-2008, 09:02
hai messo int davanti a main?

MinaVagante
03-01-2008, 09:08
in quale???? Nel primo in quello del carattere e del numero si

ctcodre
03-01-2008, 09:51
ma in tutti lo devi aggiungere ed anche il return 0 alla fine. cmq in dev c++ ti conviene creare un progetto nuovo e scegliere il C come linguaggio, mi ricordo che dovrebbe fare tutto lui.

MinaVagante
03-01-2008, 09:58
ma perchè dovrei aggiungere in tutti i programmi il return 0 e l'int prima del main??? Ma in dev c++ non si usa solo il c???

ctcodre
03-01-2008, 10:00
anche il C++, perche quello e il header della funzione main, devi mettere return 0 perche main e di tipo int. poi ti consiglio un libro buono sul C in quasi tutti i libri c'e' scritto qualcosa sulla funzione main

ctcodre
03-01-2008, 10:03
leggi qua (http://digilander.libero.it/uzappi/C/C-main.html) e anche qua (http://it.wikipedia.org/wiki/C_(linguaggio)#Programma_di_esempio)

MinaVagante
03-01-2008, 10:07
ma ad esempio in turboc mi serve lo stesso??

MinaVagante
03-01-2008, 10:21
comunque quei due programmini lì non funzionano neanche mettendo int e return 0 :(

MinaVagante
03-01-2008, 16:46
qualcuno ha qualche idea??? Mi potreste spiegare cosa fa effettivamente fflush(stdin)???

MinaVagante
04-01-2008, 12:39
Aiutooooooo please

variabilepippo
04-01-2008, 13:32
Perché non provi a cercare fflush nel forum o con Google (con tale ricerca presenta quasi 600.000 risultati)?

MinaVagante
04-01-2008, 20:02
ma perchè non funzionano quei due programmi così come sono???

variabilepippo
04-01-2008, 20:11
ma perchè non funzionano quei due programmi così come sono???


Perché manca un fflush(stdin)?

MinaVagante
04-01-2008, 20:32
anche nel secondo'???:mbe:

variabilepippo
04-01-2008, 20:42
Quali problemi ti da il codice seguente?


#include <stdio.h>

int main(void)
{
int a,b;
float Re;
printf("Inserisci a,b:\n");
scanf("%d %d",&a,&b);
Re=(-b)/2*a; // <<== Cosa calcola questa formula?
printf("La parte rale e':%f\n",Re);
getch();
return 0;
}

MinaVagante
05-01-2008, 09:39
Quel codice lì non mi da nessun errore, ma quando lo faccio partire, se assegno ad a=4 e a b=1, mi scrive che il rapporto -b/2a=0.0000
Questo codice è una parte di un codice più grande che mi calcola le soluzioni reali e complesse di un'equazione di secondo grado, quindi -b/2a sarebbe la parte Reale della soluzione, ma esce sempre 0.0000:( non capisco perchè

Dr.Speed
05-01-2008, 10:33
Quel codice lì non mi da nessun errore, ma quando lo faccio partire, se assegno ad a=4 e a b=1, mi scrive che il rapporto -b/2a=0.0000
Questo codice è una parte di un codice più grande che mi calcola le soluzioni reali e complesse di un'equazione di secondo grado, quindi -b/2a sarebbe la parte Reale della soluzione, ma esce sempre 0.0000:( non capisco perchè

perche gli interi non possono avere risultati con la virgola, devi usare i float al posto delgi int

MinaVagante
05-01-2008, 10:43
ma "a" e "b" sono interi, mentre Re l'ho dichiarato già float

limpid-sky
05-01-2008, 10:49
ma "a" e "b" sono interi, mentre Re l'ho dichiarato già float

se provi tutto in float?

MinaVagante
05-01-2008, 10:53
niente, sempre uguale :(
ma perchèèèèèèèèè, non riesco a capire

limpid-sky
05-01-2008, 11:04
metti la parentesi a (2*a).

MinaVagante
05-01-2008, 11:44
niente da fare, uffiiiiiiiiiiiiii:muro:

MinaVagante
06-01-2008, 12:19
:help: