|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
|
[C]Mi guardate questo programma?
Ciao, ecco la solita calcolatrice....ma si può sapere perchè a me non viene?
Sapete aiutarmi? Ecco il codice: Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void menu(){
printf("'*'-->Moltiplicazione\n'/'-->Divisione\n'+'-->Addizione\n'-'-->Sottrazione\n\nDigita ora l'operazione\n");
}
float molt(float a, float b){
float molt;
molt=a*b;
return molt;
}
float divi(float a, float b){
float div;
div=a/b;
return div;
}
float add(float a, float b){
float add;
add=a-b;
return add;
}
float sott(float a, float b){
float sott;
sott=a-b;
return sott;
}
int main(){
float num,num0,molt,div,add,sott;
char oper;
printf("Calcolatrice 0.1 Beta\n\nPer le operazione usa i simboli\n");
menu();
scanf("%f\n", &num);
scanf("%s\n", &oper);
scanf("%f\n", &num0);
switch (oper){
case '*': molt=molt(num,num0);
break;*/
case '/': div=divi(num,num0);
break;
case '+': add=add(num,num0);
break;
case '-': sott=sott(num,num0);
break;
}*/
}
system("PAUSE");
return 0;
}
__________________
" Disprezzato e reietto dagli uomini, uomo dei dolori che ben conosce il patire, come uno davanti al quale ci si copre la faccia, era disprezzato e non ne avevamo alcuna stima." ... "Maltrattato, si lasciò umiliare e non aprì la sua bocca; era come agnello condotto al macello, come pecora muta di fronte ai suoi tosatori, e non aprì la sua bocca" |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Non stampi il risultato...
E sarebbe anche opportuno tenere i risultati in una variabile sola (chiamata magari result, invece che avere 4 variabili che poi non sai bene come usare).
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
|
Grazie, il compilatore dice che le delle 4 solo la divisione è una funzione, per il resto dice "called object is not a function", cosa dovrei fare?
EDIT: Ho cambiato in un unica variabile result come hai detto tu e ora va. Grazie!!! Solo una cosa ora non capisco, perchè dopo aver scritto il secondo numero devo premere per forza un qualsiasi altro tasto altrimenti non va?
__________________
" Disprezzato e reietto dagli uomini, uomo dei dolori che ben conosce il patire, come uno davanti al quale ci si copre la faccia, era disprezzato e non ne avevamo alcuna stima." ... "Maltrattato, si lasciò umiliare e non aprì la sua bocca; era come agnello condotto al macello, come pecora muta di fronte ai suoi tosatori, e non aprì la sua bocca" Ultima modifica di stgww : 11-02-2008 alle 16:08. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Ripeto, cambia i nomi delle tue variabili che dovrebbero tenere il risultato.
Usa solo una variabile. Scrivi p.es. res=add(num,num0); res=divi(num,num0); etc. e alla fine stampi res. Stai anche chiamando le variabili con lo stesso nome delle tue funzioni, per quello il compilatore si sta arrabbiando.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
|
Quote:
Ora il mio problema è che dopo aver inserito il secondo numero, clicco invio e non mi appare subito la stampa, ma prima devo premergli un tasto poi invio e poi me la da Riporto il codice: Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void menu(){
printf("'*'-->Moltiplicazione\n'/'-->Divisione\n'+'-->Addizione\n'-'-->Sottrazione\n\nDigita ora l'operazione\n");
}
float molt(float a, float b){
float molt=0;
molt=a*b;
return molt;
}
float divi(float a, float b){
float div=0;
div=a/b;
return div;
}
float add(float a, float b){
float add=0;
add=a+b;
return add;
}
float sott(float a, float b){
float sott=0;
sott=a-b;
return sott;
}
int main(){
float num=0,num0=0,result=0;
char oper;
printf("Calcolatrice 0.1 Beta\n\nPer le operazione usa i simboli\n");
menu();
scanf("%f\n", &num);
scanf("%s\n", &oper);
scanf("%f\n", &num0);
switch (oper){
case '*': result=molt(num,num0);
break;
case '/': result=divi(num,num0);
break;
case '+': result=add(num,num0);
break;
case '-': result=sott(num,num0);
break;
}
printf("Risultato: %f \n", result);
system("PAUSE");
return 0;
}
__________________
" Disprezzato e reietto dagli uomini, uomo dei dolori che ben conosce il patire, come uno davanti al quale ci si copre la faccia, era disprezzato e non ne avevamo alcuna stima." ... "Maltrattato, si lasciò umiliare e non aprì la sua bocca; era come agnello condotto al macello, come pecora muta di fronte ai suoi tosatori, e non aprì la sua bocca" |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 497
|
prima di tutto nella divisione devi controllare che non si divida per 0,
perchè l'operatore lo consideri string? è un char... -->&c non &s poi perchè fai 3 scanf? basta semplicemente scanf("%f %c %f", &num, &oper, &num0); e non ci vuole \n nello scanf Ultima modifica di ramarromarrone : 11-02-2008 alle 16:27. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Togli i /n dallo scanf.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
|
Quote:
THX Sapete per caso come si fa ad estrarre un numero casuale, o meglio un set di numeri casuali e poi determinare la posizione di quello più alto ?
__________________
" Disprezzato e reietto dagli uomini, uomo dei dolori che ben conosce il patire, come uno davanti al quale ci si copre la faccia, era disprezzato e non ne avevamo alcuna stima." ... "Maltrattato, si lasciò umiliare e non aprì la sua bocca; era come agnello condotto al macello, come pecora muta di fronte ai suoi tosatori, e non aprì la sua bocca" |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 497
|
umm..
#include <stdlib.h> #include <time.h> … int i; … srand(time(NULL)); /*fa si che ogni volta si generi un numero diverso*/ i = rand() % 100 + 1; /* %100 + 1 stampa un numero casuale tra 1 e 100*/ se non metti il srand ogni volta che avvii il programma ti ridarà gli stessi numeri se vuoi una serie di numeri casuali fai un for e li salvi in un array o in una lista.. |
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Feb 2008
Messaggi: 32
|
Quote:
Codice:
#include <stdlib.h>
srand(time(NULL)); // randomizza la serie di numeri
int setNumeri[quantiNumeri];
for (int i = 0; i < quantiNumeri; i++)
{
// RAND_MAX è una costante corrispondente a 32768
// Al posto di NumeroRandomPiuAlto ci metti il numero più alto che il
// generatore di numeri deve dare.
setNumeri[i] = rand() * NumeroRandomPiuAlto / RAND_MAX;
}
// per ordinare l'array di numeri generati
qsort((void*)setNumeri, quantiNumeri, sizeof(int), Confronta);
Funzione di supporto per l'ordinamento Codice:
int Confronta( const void *arg1, const void *arg2 )
{
int *indice1 = (int*) arg1;
int *indice2 = (int*) arg2;
if (*indice1 < *indice2) return -1;
else if (*indice1 == *indice2) return 0;
else return 1;
}
|
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jun 2007
Messaggi: 497
|
Quote:
|
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
|
Boh...sono cose che non ho mai fatto
__________________
" Disprezzato e reietto dagli uomini, uomo dei dolori che ben conosce il patire, come uno davanti al quale ci si copre la faccia, era disprezzato e non ne avevamo alcuna stima." ... "Maltrattato, si lasciò umiliare e non aprì la sua bocca; era come agnello condotto al macello, come pecora muta di fronte ai suoi tosatori, e non aprì la sua bocca" |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:42.




















