PDA

Visualizza la versione completa : programma in C che deve calcolare la somma di un intero


feys88
11-10-2009, 19:48
premesso che ho iniziato da poco a programmare questo il testo del problema
/*scrivere un programma in C che inserito in input un intero sommare tutte le cifre del numero inserito da tastiera.
esempio:
n=1034 ouput=8
n=56 output=11
n=123 output=6 */

questo il codice che ho scitto io ma mi funziona solo su alcuni input, comunque non mi convince sull'algoritmo che ho adoperato questo il codice:

#include<stdio.h>
int main(){
int n,p,i,mem,cont_uno,cont_due,cont_tre,z;
int somma=0;
scanf("%d",&n); // 1034
z=n; //1034
p=n/10; // 103
mem=p*10; // 103*10=1030
cont_uno=0;
for (i=mem;i<n;i++){ // 1030<1034
cont_uno++;}

z=z/10; // 1034/10=103
p=z/10; // 103/10=10
mem=p*10; //100

cont_due=0;
for (i=mem;i<z;i++){ //100<103
cont_uno++;}

somma=cont_uno+cont_due;
//printf("%d",somma);

z=n;
z=z/10; //1100/10=110
p=z/10; //110/10=11
mem=p*1; //11*1=11
mem=z/mem;
cont_tre=0;
for (i=mem;i<=z/10;i++){ //0<1
cont_tre++;}

somma=somma+cont_tre;
printf("%d",somma);



return 0;}

MItaly
11-10-2009, 20:16
Un po' meno compatto no, eh? :)


#include <stdio.h>

int main()
{
int numero, sommaCifre=0;
printf("Inserisci il numero: ");
if(scanf("%d", &numero)!=1)
{
fputs("Valore non valido\n",stderr);
return 1;
}
if(numero<0)
numero=-numero;
while(numero)
{
sommaCifre+=numero%10;
numero/=10;
}
printf("La somma delle cifre e' %d\n",sommaCifre);
return 0;
}

Loading