Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-12-2006, 20:09   #1
Ledmauro
Member
 
L'Avatar di Ledmauro
 
Iscritto dal: Jun 2006
Città: Palermo
Messaggi: 278
problema nubbio in C

Ciao a tutti. Ho da poco acquistato il libro "C corso completo di programmazione" e sto appena entrando nel mondo della programmazione Sono arrivato al while, ma non ho capito alcuni passi di un esempio che riporta il libro. L'esempio ha lo scopo di calcolare la media di una classe, e inserendo come valore del grado, il valore -1, il programma termina. Ecco il codice:

Codice:
#include<stdio.h>
int main()
{
    int counter;
    int grade;
    int total;
    float average;
    
    total= 0;
    counter=0;
    
    printf("Inserisci un grado, -1 per terminare \n");
    scanf("%d", &grade);
    
  while(grade != -1) {
        total = total + grade;
        counter = counter + 1;
        printf(" Inserisci un voto: ");
        scanf("%d", &grade);
} 
    if (counter != 0){         
    average= (float) total / counter;
    printf("La media è %.2f", average);
}
else {
    printf("Non hai inserito nessun voto");
}
return 0;
}
Adesso, non capisco alcuni passi...le mie domande sono:
1)Nel ciclo WHILE, perchè nn mette prima la funzione printf e scanf e poi sommare la somma è aumentare il contatore dei voti?
2)Perchè prima del ciclo WHILE bisogna inserire:
Codice:
   printf("Inserisci un grado, -1 per terminare \n");
    scanf("%d", &grade);
Vi prego di rispondere in maniera chiara, perchè ho particolari difficoltà ancora Grazie anticipamente e ciao!!
Ledmauro è offline   Rispondi citando il messaggio o parte di esso
Old 19-12-2006, 23:24   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
come puoi vedere la prima scanf la fai sopra il while...questo perchè se metti subito -1 esci diretto.
quindi se metti un valore valido entri nel while e il primo valore ce l'hai già, quindi lo sommi al totale, contatore ecc..
se poi dallo scanf dentro il while metti -1...esci
spero di essere stato chiaro
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 01:41   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Ledmauro
1)Nel ciclo WHILE, perchè nn mette prima la funzione printf e scanf e poi sommare la somma è aumentare il contatore dei voti?
printf e scanf le mette alla fine anziché all'inizio perché in tal modo il check del valore di uscita (-1) avviene praticamente subito dopo la scanf. se invece printf e scanf fossero all'inizio accadrebbe che prima del check verrebbe effettuata un'iterazione completa e il -1 verrebbe calcolato come un valore qualunque.

Quote:
2)Perchè prima del ciclo WHILE bisogna inserire:
Codice:
   printf("Inserisci un grado, -1 per terminare \n");
    scanf("%d", &grade);
la scanf prima del while serve perché altrimenti quando entri nel while la prima volta fai un'iterazione senza aver fatto nessuna scanf prima. questo è causato dal fatto precedente, cioè che la scanf del while si trova alla fine anziché all'inizio.


più chiaro di così non ci riesco
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-12-2006, 11:53   #4
Ledmauro
Member
 
L'Avatar di Ledmauro
 
Iscritto dal: Jun 2006
Città: Palermo
Messaggi: 278
Grazie mille, ho capito
Ledmauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Svolta per il vaccino anti-HIV: team ann...
Il governo USA 'compra' una quota di Glo...
Veeam offre supporto a sei nuovi hypervi...
WINDTRE BUSINESS apre alle imprese il da...
DEF CON vieta gli occhiali smart da 'per...
Keychron annuncia ZGM, il primo firmware...
Zuckerberg prevede miliardi di agenti IA...
Benzina sempre più cara, boom di ...
DualSense White a 59,99€: il controller ...
HONOR accelera sull'imaging AI: nasce Ai...
Thimbleweed Park 2 è realtà...
Altro che crisi: Microsoft vola con l'in...
Fu definito 'impossibile', ma dopo 33 an...
Stangata in arrivo per gli smartphone An...
Apple sfonda la barriera dei 5.000 milia...
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: 15:23.


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