Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-10-2005, 21:51   #1
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
[C] Sommare numero delle cifre

Ciao a tutti!

Sono qui con un nuovo problema

Devo scrivere un programma che sommi le cifre di un numero. Ad esempio se come numero ho 37415 il risultato deve essere 20. Non ho la più pallida idea di come scomporre il numero in singole cifre, o meglio non so come fare questa scomposizione per un numero di n cifre. Perché ad esempio in un esercizio precedente che avevo mi si chiedeva di verificare se un numero di al più 4 cifre era palindromo e io giocando sulle divisioni per 10 e sui moduli del numero sempre per 10, ci riuscivo a scomporlo.

P.S. : Non devo usare né vettori, né puntatori, né liste.

Grazie
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 21:53   #2
redcloud
Bannato
 
L'Avatar di redcloud
 
Iscritto dal: Feb 2003
Città: Anche Chuck Norris usa Debian e Gnome
Messaggi: 1270
Mi sa che devi usare gli operatori sui bit e le maschere...
redcloud è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 21:59   #3
Joker84
Senior Member
 
L'Avatar di Joker84
 
Iscritto dal: Oct 2005
Città: Pompei(NA)
Messaggi: 3087
io ti consiglierei di fare un mod(%) e prendere la cifra ke ti interessa.....

es:

123=6 giusto?!?

quindi: 123 %10=3+ 12%10=2+ 1%10= 1 ....=6 prova......
__________________
My Deviant-Gallery

 MacBook Pro 13'' Retina i5 dual-core a 2,6GHz - 8GB Ram - 256GB SSD :: iPhone 12 128GB :: iPad 7 128GB WiFi :: Apple Watch 4 (40mm) 
Joker84 è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 22:40   #4
NA01
Senior Member
 
L'Avatar di NA01
 
Iscritto dal: Jun 2003
Città: Genova
Messaggi: 5676
Quote:
Originariamente inviato da Joker84
io ti consiglierei di fare un mod(%) e prendere la cifra ke ti interessa.....

es:

123=6 giusto?!?

quindi: 123 %10=3+ 12%10=2+ 1%10= 1 ....=6 prova......
quoto.
nel caso ti servisse ti ricordo che il numero delle cifre è dato dal log in base 10

ciao
NA01 è offline   Rispondi citando il messaggio o parte di esso
Old 19-10-2005, 23:06   #5
Joker84
Senior Member
 
L'Avatar di Joker84
 
Iscritto dal: Oct 2005
Città: Pompei(NA)
Messaggi: 3087
nn penso che possa servire....cmq...

basta che fai un ciclo e quando il resto della divisione è <=0 esci....

Prova!
__________________
My Deviant-Gallery

 MacBook Pro 13'' Retina i5 dual-core a 2,6GHz - 8GB Ram - 256GB SSD :: iPhone 12 128GB :: iPad 7 128GB WiFi :: Apple Watch 4 (40mm) 
Joker84 è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 07:24   #6
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Grazie, attraverso i moduli so che si può fare, ma è fattibile con poche cifre. Se ho ad esempio un numero con 10 cifre come faccio a farlo attraverso i moduli?
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 11:23   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Manugal: se non vuoi usare il logaritmo per trovarti il numero delle cifre, ti trovi il massimo multiplo di 10 minore di x (il numero da cercare)...

for(int m = 1; x / m >= 10; m *= 10);

In questo momento in x hai il massimo multiplo di 10 minore di x...

Dopo è banale (se vuoi continuare da solo non visualizzare lo spoiler):
Spoiler:

while(m > 0)
{
printf("%d", x / m);
x %= m;
m /= 10;
}

Ultima modifica di cionci : 20-10-2005 alle 12:14.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 12:11   #8
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Ok ma trovare il numero delle cifre non mi serve a un granché perché dopo che ho trovato che un numero ha x cifre poi che ci faccio? A me servono proprio le cifre che compongono il numero è quello che non riesco a fare.
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 12:12   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Te l'ho scritto nel tag spoiler come si fa...ma una volta trovato il numero delle cifre è banale...dovresti arrivarci da solo senza guardare il mio codice...

Edit: avevo sbagliato la condizione di terminazione nel for

PS: io non ho trovato le cifre, ma il massimo multiplo di 10 minore di x...di conseguenza se dividi x per m ottieni la prima cifra...

Ultima modifica di cionci : 20-10-2005 alle 12:19.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 12:25   #10
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Lo spoiler ancora non lo vedo perché vorrei farlo da solo

Mettiamo il caso che io abbia come numero n=38176, questo significa che il maggior multiplo di 10 minore di n è 10000. Io pensavo di fare una cosa del genere. Di fare un ciclo dove inizialmente dividevo il numero per 10000 così viene fuori 3,8176 e quindi aumento la somma con 3. Poi divido per 1000 e viene 38,176 a questo punto per prendere l'8 dopo il 3 facevo 38%10 e quindi mi viene fuori 8 e lo sommo al 3 di prima. All'iterazione successiva ho 38176/100 e viene 381,76, prendo 381%10 e viene fuori 1 e lo sommo e così via. Potrebbe andare così?
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 12:32   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
38176 / 10000 = 3 (è una divisione intera)
38176 % 10000 = 8176
10000 / 10 = 1000

8176 / 1000 = 8
8176 % 1000 = 176
1000 / 10 = 100

176 / 100 = 1
176 % 100 = 76
100 / 10 = 10

76 / 10 = 7
76 % 10 = 6
10 / 10 = 1

6 / 1 = 6
6 % 1 = 0
1 / 10 = 0
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 12:43   #12
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Eh beh in effetti è più semplice come hai fatto tu Però l'idea insomma era quella..... Grazie proverò a tirare giù sto benedetto programma. Ciao
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 18:06   #13
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
ragazzi come si chiama quella funzione che converte un numero in stringa?

EDIT:
trovata è la itoa.

P.S.
perhcè facendo man itoa mi dice che non c'è niente? invece facendo man atoi mi appare il manuale di quella funzione?

Ultima modifica di VegetaSSJ5 : 20-10-2005 alle 18:09.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 18:15   #14
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Un'ultima cosa...... siccome devo fare la somma delle cifre quando la vado a fare mi ritira fuori il numero paro paro che gli ho dato in input. Io ho scritto questo codice:

Codice:
 while(m>0){
       sum_cifre+=(num/m);
       num%=m;
       m/=10;
 }
Non riesco a capire perché se gli passo ad esempio 234 mi restituisce 234 e non 9 (cioè la sua somma).
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 18:23   #15
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
Niente niente tutto a posto avevo sbagliato la condizione del for Grazie ancora
Manugal è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 18:26   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da VegetaSSJ5
perhcè facendo man itoa mi dice che non c'è niente? invece facendo man atoi mi appare il manuale di quella funzione?
itoa non è una funzione standard... Puoi utilizzare sprintf per fare la stessa cosa...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 18:56   #17
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
soluzione del problema usando la sprintf
Spoiler:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main () {
int num, sum=0, i;
char *buf;
buf= (char *) malloc (16*sizeof(char));
printf("Inserisci un numero: ");
scanf("%d", &num);
sprintf(buf, "%d", num);
for (i=0; i< strlen(buf); i++) sum+= buf[i]-48;
printf("\nLa somma delle cifre del numero e' %d\n", sum);
return 0;
}

P.S.
se uso il tag code dentro lo spoiler è come se lo spoiler non ci fosse, si vede tutto! per cui ho tolto il tag code, ma in questo modo si è persa l'indentazione... è un bug del vbulletin?

Ultima modifica di VegetaSSJ5 : 20-10-2005 alle 19:01.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 20-10-2005, 21:18   #18
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
La mia versione col for :

Codice:
int main(void){
    
  int numero, risul = 0, count=1;

  scanf("%d", &numero);

  while ( (numero / (10*(count))) != 0 )
    count*=10;

  for ( ; count != 0; count/=10 )
    {
      risul+=numero/count;
      numero -= (numero/count)*count;
    }
  printf("%d\n", risul);

  return 0;

}
Fa forse però un po' + schifo di quella col while()

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 16:22   #19
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Ma a cosa ti serve sapere di quante cifre e' composto il numero?

Codice:

#include <stdio.h>

void main(void)

{
    int numero,risul;

    printf("Inserire numero: ");
    scanf("%d", &numero);

    for (risul=0;numero;numero/=10)
	risul+=numero%10;

    printf("Somma: %d\n", risul);
}
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 21-10-2005, 16:58   #20
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da repne scasb
Ma a cosa ti serve sapere di quante cifre e' composto il numero?
A niente...figurati che io credevo che volesse stampare le cifre...
Edit: sto facendo confusione fra i vari thread

Ultima modifica di cionci : 21-10-2005 alle 17:31.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
Obbligati ad acquistare una scheda madre...
GTA VI su PC? La data non c'è, ma...
Monopattini elettrici, a un anno dal dec...
Tesla Robotaxi, autista di sicurezza si ...
Samsung Galaxy S26: svelate le combinazi...
Microsoft Ignite: arriva Edge for Busine...
OPPO e Lamine Yamal uniscono sport e tec...
Microsoft, NVIDIA e Anthropic siglano un...
SpaceX potrebbe comunicare alla NASA rit...
Scoperte cavità sotterranee scava...
OnePlus anticipa l'arrivo di due nuovi p...
DJI lancia Osmo Action 6: la prima actio...
NASA: conferenza stampa sulla cometa int...
Ex CEO di TSMC passa a Intel: aperta un'...
Gigabyte X870E Aorus Elite X3D, una moth...
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: 01:44.


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