Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
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


Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Polestar 2 e 3: le batterie integrano or...
Crisi delle memorie: ecco le soluzioni p...
Il satellite ESA Proba-3 è tornat...
'Chiudete (quasi) tutto', il risultato d...
Tesla, maggiore autonomia grazie a una r...
Nasce TrendAI, la divisione di Trend Mic...
Recensione Motorola Signature: il primo ...
TeraFab, Elon Musk parte all'assalto di ...
L'ambiziosa base lunare permanente sulla...
Litografia BEUV (Beyond-EUV): la startup...
SAP e l'IA agentica: dall'hype alla matu...
'Abbiamo raggiunto l'AGI': Jensen Huang ...
Claude ora usa il mouse e la tastiera al...
Analisi Opensignal 2026: TIM si prende l...
Revolut sfida le grandi banche: utile da...
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: 18:42.


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