GTA-Expert Forum: Problemi Linguaggio C - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

Problemi Linguaggio C

#1 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 17:05

Rega mi potete dare una mano con questi esercizi sul linguaggio C?

1) Scrivi un programma che legga da tastiera N numeri reali ( N richiesto da tastiera ) ed effettui i seguenti calcoli visualizzandone il risultato:

- Minimo
- Massimo
- Media Valori

2) Dato un numero intero inferiore a mille, determina il numero di centinaia, decine e unità. Per esempio 123 è composto da un centinaio, due decine e tre unità.

Sono dalle 5 provandoci ma non riesco...





La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#2 L'utente è offline   Carl_Vercetti 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 13225
  • Iscritto il: 12/12/05
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 17:14

Aspetta, ma dove memorizzi i vari input? Uno per variabile? Il trucco sta nell'assegnare a Min e Max 0 e poi lo fai confrontare con ogni numero per un loop che va da 0 ad N. del tipo:

While K (variabile contatore) < N do:
if min < N1
then min = N1;
if max > N1
then max = N1;
J +=1
end while.

Pseudocodifica ovviamente, ma questo è il trucco. Devi dirmi se usi un array o tante variabili.
Immagine Postata

58
0

#3 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 17:16

E' proprio li il problema, non so come fare...
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#4 L'utente è offline   Carl_Vercetti 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 13225
  • Iscritto il: 12/12/05
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 17:26

Uh? Il controllo o come memorizzare il tutto?

Ti ho detto l'algoritmo in pratica.

Oppure altra tecnica:

Assegni a Min e Max 0
Quanti numeri vuoi? E assegni a N i numeri che vuole l'utente.
Ciclo While: Mentre la variabile K (contatore) è minore o uguale a N (numeri inseriti) fai:

Inserisci il primo numero nella variabile X
Se X è minore di Minimo,
allora assegna a minimo il valore di X.

Se X è maggiore di Massimo,
allora assegna a massimo il valore di X.

Media assegna Media + X

Aumenta la variabile K di 1.
Fine While.

Media = Media / N.

E il primo punto è andato.
Il secondo si basa su una regola se non sbaglio, ovvero fai 230 diviso 100, esce 2,30
levi il 2, ti rimane 30.
Fai 30 diviso 10. E' 3, con resto 0

Ci sono 2 centinaia e 30 decine, ma andiamo con calma e risolviamo il punto 1.
Immagine Postata

58
0

#5 L'utente è offline   Fabio206 

  • Padrino
  • Gruppo: Admin
  • Messaggi: 72430
  • Iscritto il: 05/12/05
  • GTA Preferito:GTA III

Inviato il 03 aprile 2013 - 17:29

1) http://www.fimietta....nguaggio-c.html
Per la media basta che calcoli la somma aggiungendo ogni volta il numero corrente e poi dividi per N
2) Usa il modulo e la divisione
0

#6 L'utente è offline   Liko 

  • Assassino
  • Gruppo: Utenti
  • Messaggi: 5702
  • Iscritto il: 28/01/06
  • Provenienza:Roma
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2013 - 17:30

usi una variabile intera n che contiene il numero di valori da inserire, a inizio programma usi scanf per memorizzare il valore in n, subito dopo crei un array double array[n], memorizzi ogni singolo valore che inserisci nell'array con un ciclo for e fai quello che ha detto carl, poi calcoli la media e visualizza tutti i risultati.
0

#7 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 17:32

Ci provo, vi faccio sapere :sese:
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#8 L'utente è offline   Carl_Vercetti 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 13225
  • Iscritto il: 12/12/05
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 17:50

Se usi l'array, meglio ancora, ma se non lo hai ancora trattato, usi la variabile sacrificale :sese: .
Immagine Postata

58
0

#9 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 17:53

Se avete tempo potete farmi il secondo?

Il primo l'ho capito, il secondo proprio no..
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#10 L'utente è offline   Liko 

  • Assassino
  • Gruppo: Utenti
  • Messaggi: 5702
  • Iscritto il: 28/01/06
  • Provenienza:Roma
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2013 - 18:12

usi la regola che ha detto carl.
una volta inserito il numero e controllato se è minore di 1000, lo dividi per 100, ed hai il numero delle centinaia, il resto della divisione lo metti in una variabile, dividi quella variabile per 10, il numero prima della virgola è il numero di decine, quello dopo, ovvero il resto della divisione della variabile per 10, è il numero di unità.
0

#11 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 18:19

Ci provo...
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#12 L'utente è offline   Liko 

  • Assassino
  • Gruppo: Utenti
  • Messaggi: 5702
  • Iscritto il: 28/01/06
  • Provenienza:Roma
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2013 - 18:24

daje che è na cazzata, alle brutte se proprio non ce riesci me dici e te posto il codice

il primo è più difficile del secondo quindi se quello l'hai capito e lo sai fare in teoria ce la dovresti fa
0

#13 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 18:44

Visualizza MessaggiLiko, il 03 aprile 2013 - 19:12 ha detto:

usi la regola che ha detto carl.
una volta inserito il numero e controllato se è minore di 1000, lo dividi per 100, ed hai il numero delle centinaia, il resto della divisione lo metti in una variabile, dividi quella variabile per 10, il numero prima della virgola è il numero di decine, quello dopo, ovvero il resto della divisione della variabile per 10, è il numero di unità.


Qui mi sono un pò perso...come faccio a mettere il resto della divisione in una variabile?
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#14 L'utente è offline   Liko 

  • Assassino
  • Gruppo: Utenti
  • Messaggi: 5702
  • Iscritto il: 28/01/06
  • Provenienza:Roma
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2013 - 18:48

ipotizzando che la variabile che contiene il numero inserito si chiami n, una volta fatto centinaia = n/100; fai variabile = n%100;
0

#15 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 18:52

Allora per adesso sto così:

 int main () { 
 int n; // Numero che verrà inserito 
 float c; // Centinaia 
 float d; // Decine 
 float u; //Unità 
printf("Inserisci un numero: "); 
 scanf ("%d", &n); 
 if ( n >= 1000 ) // Controllo se il numero è maggiore o uguale a 1000 
 printf("Errore: il numero è 1000 o superiore \n"); 
 else { 
 c = n/100; // Acquisisco le centinaia 
 v = n%100; 
 d = v/10; // Acquisisco le decine 
 printf("Centinaia %d, Decine %d, Unità %d", c, d, u); // Printa il risultato 
 return 0; 
} 
 }



Manca l'ultima parte, ovvero quella delle unità e penso ci sia un errore nel print finale..
EDIT: E un altro che ho notato ora.

Messaggio modificato da Federico Ronaldo il 03 aprile 2013 - 18:55

La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#16 L'utente è offline   Liko 

  • Assassino
  • Gruppo: Utenti
  • Messaggi: 5702
  • Iscritto il: 28/01/06
  • Provenienza:Roma
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2013 - 18:57

l'errore è che le variabili delle centinaia, decine ed unità sono di tipo float, mentre nella printf usi %d, cambia il tipo delle variabili in int.
0

#17 L'utente è offline   Fabio206 

  • Padrino
  • Gruppo: Admin
  • Messaggi: 72430
  • Iscritto il: 05/12/05
  • GTA Preferito:GTA III

Inviato il 03 aprile 2013 - 18:58

Manca il modulo nelle decine per ottenere le unità
0

#18 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 19:01

Sisi lo avevo già fixato...ma per le unità?


v = d%10;
u = v/10

?

Messaggio modificato da Federico Ronaldo il 03 aprile 2013 - 19:02

La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#19 L'utente è offline   Liko 

  • Assassino
  • Gruppo: Utenti
  • Messaggi: 5702
  • Iscritto il: 28/01/06
  • Provenienza:Roma
  • GTA Preferito:GTA: San Andreas

Inviato il 03 aprile 2013 - 19:04

la stessa cosa che hai fatto per le decine.
facendo un esempio, 123:

c = 123/100 = 1,23 (quindi 1 perchè il tipo è int)
v = 123%100 = 23
d = v/10 ---> 23/10 = 2,3 (quindi 2 perchè il tipo è int)
u = v%10 ---> 23%10 = 3 che è il numero delle unità
0

#20 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 aprile 2013 - 19:07

Perfetto :sese:
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi