Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-02-2008, 15:48   #1
stgww
Senior Member
 
L'Avatar di stgww
 
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;
}
Grazie
__________________
" 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"
stgww è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 15:57   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
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.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:04   #3
stgww
Senior Member
 
L'Avatar di stgww
 
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.
stgww è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:08   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
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.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:18   #5
stgww
Senior Member
 
L'Avatar di stgww
 
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
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.
Hai ragione Me ne ero accorto e ho anche editato il post sopra !
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"
stgww è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:23   #6
ramarromarrone
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.
ramarromarrone è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:24   #7
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
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.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:31   #8
stgww
Senior Member
 
L'Avatar di stgww
 
Iscritto dal: May 2006
Città: Monza
Messaggi: 3686
Quote:
Originariamente inviato da ramarromarrone Guarda i messaggi
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);
THX

Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Togli i /n dallo scanf.
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"
stgww è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:43   #9
ramarromarrone
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..
ramarromarrone è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:53   #10
marra11mg
Member
 
Iscritto dal: Feb 2008
Messaggi: 32
Quote:
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 ?
Per generarli e ordinarli

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);
Il numero più alto si troverà nella posizione setNumeri[quantiNumeri - 1]



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;
}
marra11mg è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 16:57   #11
ramarromarrone
Senior Member
 
Iscritto dal: Jun 2007
Messaggi: 497
Quote:
Originariamente inviato da marra11mg Guarda i messaggi
Per generarli e ordinarli

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);
Il numero più alto si troverà nella posizione setNumeri[quantiNumeri - 1]



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;
}
eh ma così gli togli il divertimento di farselo lui...
ramarromarrone è offline   Rispondi citando il messaggio o parte di esso
Old 11-02-2008, 17:05   #12
stgww
Senior Member
 
L'Avatar di stgww
 
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"
stgww è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
AMD non ha ancora finito con i rincari: ...
Toyota mette da parte il tricilindrico: ...
Il Canada entra nella rete UE di superco...
Harley-Davidson aveva scommesso sul futu...
Oggi 2 super tablet TECLAST da 13" ...
Stack Overflow sta crollando: da 6.700 d...
Scope elettriche Dreame R10 a 119€ e Tin...
Google aggiorna Nest Wifi, Chromecast e ...
Intel chiude il terzo trimestre con rica...
Telegram su Android: rispondere a una ch...
Termoventilatore Dyson Purifier crolla a...
Stipendi e messaggi interni di Anthropic...
Xiaomi REDMI Note 17 Pro Max 5G 8GB/256G...
Fortnite su Linux userà Easy Anti-Cheat ...
319 estensioni di Chrome dirottano le ri...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v