 
View Full Version : [dev c++] Perchè non va???
MinaVagante
31-12-2007, 14: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, 15: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, 17: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, 17:58
che errore ti da?
MinaVagante
31-12-2007, 18:43
mi segna la riga int a 
e mi scrive main must return int
Andrea16v
31-12-2007, 18:48
...manca un return 0; come ultima riga del main() :)
MinaVagante
01-01-2008, 12:27
mi continua a dire sempre la stessa cosa anche con return :(
prova cosi
#include ...
int main() {
	...
	getch();
	return 0;
}
variabilepippo
01-01-2008, 12: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)!
la funzione main restituisce un int
Andrea16v
01-01-2008, 15: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, 16: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, 20:01
Aiutoooooooooo :D
MinaVagante
03-01-2008, 09:56
Qualcuno può darmi una mano???
hai messo int davanti a main?
MinaVagante
03-01-2008, 10:08
in quale???? Nel primo in quello del carattere e del numero si
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, 10: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???
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
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, 11:07
ma ad esempio in turboc mi serve lo stesso??
MinaVagante
03-01-2008, 11:21
comunque quei due programmini lì non funzionano neanche mettendo int e return 0 :(
MinaVagante
03-01-2008, 17:46
qualcuno ha qualche idea??? Mi potreste spiegare cosa fa effettivamente fflush(stdin)???
MinaVagante
04-01-2008, 13:39
Aiutooooooo please
variabilepippo
04-01-2008, 14:32
Perché non provi a cercare fflush nel forum o con Google (con tale ricerca presenta quasi 600.000 risultati)?
MinaVagante
04-01-2008, 21:02
ma perchè non funzionano quei due programmi così come sono???
variabilepippo
04-01-2008, 21:11
ma perchè non funzionano quei due programmi così come sono???
Perché manca un fflush(stdin)?
MinaVagante
04-01-2008, 21:32
anche nel secondo'???:mbe:
variabilepippo
04-01-2008, 21: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, 10: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, 11: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, 11:43
ma "a" e "b" sono interi, mentre Re l'ho dichiarato già float
limpid-sky
05-01-2008, 11:49
ma "a" e "b" sono interi, mentre Re l'ho dichiarato già float
se provi tutto in float?
MinaVagante
05-01-2008, 11:53
niente, sempre uguale :( 
ma perchèèèèèèèèè, non riesco a capire
limpid-sky
05-01-2008, 12:04
metti la parentesi a (2*a).
MinaVagante
05-01-2008, 12:44
niente da fare, uffiiiiiiiiiiiiii:muro:
MinaVagante
06-01-2008, 13:19
:help:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.