Domanda Pseudo Programma in c che non funge ?

Stato
Discussione chiusa ad ulteriori risposte.

RiperRotten

Utente Platinum
26 Marzo 2013
1,356
118
909
1,085
Ultima modifica da un moderatore:
Ciao a tutti...oggi per esercitarmi col c (visto che ho appena cominciato) ho provato a fare questo programmino...il problema è che mi da due frasi sullo stesso rigo e non rispetta la struttura di controllo...sapete dirmi dove sbaglio ? Grazie a tutti
Codice:
#include <stdio.h>main () {
    float n_lati,l1,l2,l3,l4,h,b,A,P;
    printf ("dimmi se la figura ha 3 o 4 lati :  ");
    scanf("&f",&n_lati);
    if (n_lati==3){
            printf("inserisci il valore del primo lato :  ");
    scanf("%f",&l1);
              printf("inserisci il valore del secondo lato :  ");
    scanf("%f",&l2);
              printf("inserisci il valore del terzo lato :  ");
    scanf("%f",&l3);
              printf("inserisci il valore dell'altezza :  ");
    scanf("%f",&h);
            printf("inserisci il valore della base :  ");
    scanf("%f",&b);
    A=(b*h)/2;
    P=l1+l2+l3; }
     else
        printf("inserisci il valore del primo lato :  ");
    scanf("%f",&l1);
    printf("inserisci il valore del secondo lato :  ");
    scanf("%f",&l2);
    printf("inserisci il valore del terzo lato :  ");
    scanf("%f",&l3);
    printf("inserisci il valore del quarto lato :  ");
    scanf("%f",&l4);
            printf("inserisci il valore della base :  ");
    scanf("%f",&b);
            printf("inserisci il valore dell'altezza :  ");
    scanf("%f",&h);
    A=b*h;
    P=l1+l2+l3+l4;
  printf("il perimetro vale %.2f e l'area %.2f ",P,A);
getch ();


}
P.S. chiedo scusa se creo topic per risolvere solo miei problemi e non sono in grado di aiutare gli altri
 
nel primo scanf, al posto del & ci va %, le istruzioni dopo l'else vanno racchiuse nelle parentesi graffe... altro?
 
Non farti scrupoli di coscienza a chiedere, un forum dopotutto serve a questo :)
Ecco il codice corretto e commentato, se ancora non ti è chiara qualcosa chiedi pure :)
Codice:
#include <stdio.h>

void main () {
     // la variabile n_lati non ha senso dichiararla come float visto
     // che per sua natura conterrà ovviamente solo valori integer
     
     // inizializzo tutte le variabili = 0 cosi da evitare problemi se l' utente
     // inserisce valori non corretti in input
     int n_lati = 0;
     float l1,l2,l3,l4,h,b,A,P = 0;
     
     printf ("dimmi se la figura ha 3 o 4 lati : ");
     scanf("%d",&n_lati);
                         if (n_lati==3){
                            //inserisco in ogni printf il carattere \n di escape per scrivere
                            //su una nuova riga
                            printf("\ninserisci il valore del primo lato : ");
                            scanf("%f",&l1);
                            printf("\ninserisci il valore del secondo lato : ");
                            scanf("%f",&l2);
                            printf("\ninserisci il valore del terzo lato : ");
                            scanf("%f",&l3);
                            printf("inserisci il valore dell'altezza : ");
                            scanf("%f",&h);
                            printf("inserisci il valore della base : ");
                            scanf("%f",&b);
                            A=(b*h)/2;
                            P=l1+l2+l3;
                            }else if(n_lati=4){ // non avevi messo le parentesi, quindi ciò che eseguiva
                            // effettivamente l' istruzione else era solo il primo printf
                            printf("\ninserisci il valore del primo lato : ");
                            scanf("%f",&l1);
                            printf("\ninserisci il valore del secondo lato : ");
                            scanf("%f",&l2);
                            printf("\ninserisci il valore del terzo lato : ");
                            scanf("%f",&l3);
                            printf("\ninserisci il valore del quarto lato : ");
                            scanf("%f",&l4);
                            printf("\ninserisci il valore della base : ");
                            scanf("%f",&b);
                            printf("\ninserisci il valore dell'altezza : ");
                            scanf("%f",&h);
                            A=b*h;
                            P=l1+l2+l3+l4;
                            }
     printf("\nil perimetro vale %.2f e l'area %.2f ",P,A);
     getch ();
}
 
Ultima modifica:
Reaper perfavore leggi quì prima di continuare a postare: Annunci - Linguaggi di Programmazione
impara ad usare il tag code, mi raccomando
P.S. chiedo scusa se creo topic per risolvere solo miei problemi e non sono in grado di aiutare gli altri
Siamo quì soprattutto per aiutare, farai felici molti con i tuoi problemi, incluso me. Ci permetti di contiuare ad esercitarci in modo da non dimenticare il linguaggio. Per qualsiasi dubbio non farti problemi e posta qua.
 
vi ringrazio ..ora ho capito dov'era l'errore... @Tool : quindi anziché usare devo usare
Codice:
per postare dei codici ?
 
vi ringrazio ..ora ho capito dov'era l'errore... @Tool : quindi anziché usare devo usare per postare dei codici ?

se vai in modalità avanzata trovi questo simboletto # (lo sharp) se lo clicchi ti crea il tag code, in mezzo ci incolli il codice che sta sul compilatore e esce l'ordine degli spazi come nel compilatore.
Purtroppo non si vede quello che hai messo perchè chiaramente il sistema lo interpreta, potevi scriverci qualcosa dentro :asd: comunque tranquillo che ho capito :D
 
Stato
Discussione chiusa ad ulteriori risposte.