[Risolto] [C] ciclo non funzionante

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
Software-Bloat
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1022
Iscrizione: martedì 29 aprile 2008, 9:05
Contatti:

[Risolto] [C] ciclo non funzionante

Messaggio da Software-Bloat »

ciao ragazzi,
premesso che sto ancora imparando...
ho fatto questo programmino che dovrebbe risolvere un sistema di due equazioni di primo grado...

quando chiedo se si vuole ripetere l'operazione,non funziona e si chiude il programma.

il sorgente è questo:

Codice: Seleziona tutto

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

int main()
{
int a,b,c,a2,b2,c2,num_x,num_y,delta;
float x,y;
char scelta;

do {
        printf ("Spiegazione programma: \n");
        printf ("ax + by = c \na2x + b2y = c2\n");
        printf ("Inserisci i valori:\n");

        //prima parte aquisizione valori
        printf ("a = \t");
        scanf ("%d", &a);

        printf ("b = \t");
        scanf ("%d", &b);

        printf ("c = \t");
        scanf ("%d", &c);

        //seconda parte aquisizione valori
        printf ("a2 = \t");
        scanf ("%d", &a2);

        printf ("b2 = \t");
        scanf ("%d", &b2);

        printf ("c2 = \t");
        scanf ("%d", &c2);

        //calcoli
        delta = (a*b2) - (a2*b2);
        num_x = (c*b2) - (c2*b);
        num_y = (a*c2) - (a2*c);

        x = num_x/delta;
        y = num_y/delta;

        //printa risultati
        printf ("il valore della x è : %.1f\n", x);
        printf ("il valore della y è : %.1f\n", y);

        printf ("vuoi continuare? <s/n>\n");
        scanf ("%c", &scelta);
    } while (scelta == 's');

return 0;
}
cos'ho sbagliato ??? O_O
Ultima modifica di Anonymous il giovedì 27 novembre 2008, 15:56, modificato 1 volta in totale.
io sono ciò che sono per merito di ciò che siamo tutti
Blog
Avatar utente
menelicte
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 596
Iscrizione: lunedì 4 giugno 2007, 0:04

Re: [C] ciclo non funzionante

Messaggio da menelicte »

mi sa che ti rimane un invio nel buffer di tastiera e quindi cattura quello invece di aspettare il tuo input.

per svuotare il buffer, inserisci

Codice: Seleziona tutto

fflush(stdin);
prima dell'ultima scanf
"Tentare è il primo passo verso il fallimento" Homer J.
Avatar utente
Super Cicco
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1749
Iscrizione: giovedì 16 ottobre 2008, 19:21

Re: [C] ciclo non funzionante

Messaggio da Super Cicco »

usa:
int getchar(void)
al posto di scanf, poi svuota il buffer con fflush(stdin)
Dai    Prendi  Usa                          ...non chiamatemi Ciccio, è Cicco!
Apri    Esamina  Spingi
Chiudi  Parla    Tira
Avatar utente
hds619
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 352
Iscrizione: domenica 15 aprile 2007, 20:23
Località: Ferrara
Contatti:

Re: [C] ciclo non funzionante

Messaggio da hds619 »

menelicte ha scritto: mi sa che ti rimane un invio nel buffer di tastiera e quindi cattura quello invece di aspettare il tuo input.

per svuotare il buffer, inserisci

Codice: Seleziona tutto

fflush(stdin);
prima dell'ultima scanf
oppure

Codice: Seleziona tutto

while (getc (stdin) != 0x0A);
Avatar utente
preben
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1188
Iscrizione: giovedì 12 luglio 2007, 20:58

Re: [C] ciclo non funzionante

Messaggio da preben »

Oppure togli "\n" dall'ultima printf.
Ciao!
Accusare gli altri delle proprie disgrazie è conseguenza della nostra ignoranza!
Avatar utente
Super Cicco
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1749
Iscrizione: giovedì 16 ottobre 2008, 19:21

Re: [C] ciclo non funzionante

Messaggio da Super Cicco »

preben ha scritto: Oppure togli "\n" dall'ultima printf.
Ciao!
??? che centra?
Dai    Prendi  Usa                          ...non chiamatemi Ciccio, è Cicco!
Apri    Esamina  Spingi
Chiudi  Parla    Tira
Avatar utente
kelev
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1766
Iscrizione: giovedì 4 settembre 2008, 0:27

Re: [C] ciclo non funzionante

Messaggio da kelev »

Credo non sia quello il problema
"E alla fine sei da solo, dove vai, con chi brindi?"
Avatar utente
preben
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1188
Iscrizione: giovedì 12 luglio 2007, 20:58

Re: [C] ciclo non funzionante

Messaggio da preben »

Perché non provate?
Accusare gli altri delle proprie disgrazie è conseguenza della nostra ignoranza!
Avatar utente
Software-Bloat
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1022
Iscrizione: martedì 29 aprile 2008, 9:05
Contatti:

Re: [C] ciclo non funzionante

Messaggio da Software-Bloat »

scusa eh...ma il problema non è quello...lo capisci anche se non provi...
comunque la soluzione era questa per svuotare il buffer

Codice: Seleziona tutto

while ( getchar() != '\n' );
e fila tutto liscio :P

grazie a tutti  (b2b)
io sono ciò che sono per merito di ciò che siamo tutti
Blog
Avatar utente
preben
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1188
Iscrizione: giovedì 12 luglio 2007, 20:58

Re: [C] ciclo non funzionante

Messaggio da preben »

Software-Bloat ha scritto: scusa eh...ma il problema non è quello...lo capisci anche se non provi...
comunque la soluzione era questa per svuotare il buffer

Codice: Seleziona tutto

while ( getchar() != '\n' );
e fila tutto liscio :P

grazie a tutti  (b2b)
Ma tu hai provato?
Accusare gli altri delle proprie disgrazie è conseguenza della nostra ignoranza!
Avatar utente
Software-Bloat
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1022
Iscrizione: martedì 29 aprile 2008, 9:05
Contatti:

Re: [C] ciclo non funzionante

Messaggio da Software-Bloat »

certo...e come sospettavo....
io sono ciò che sono per merito di ciò che siamo tutti
Blog
Avatar utente
kelev
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1766
Iscrizione: giovedì 4 settembre 2008, 0:27

Re: [C] ciclo non funzionante

Messaggio da kelev »

Metti risolto nel topic
"E alla fine sei da solo, dove vai, con chi brindi?"
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti