Aiuto per programma in C

Messaggioda Dondi636 » 28/01/2005, 21:14

Chi sa fare un sorgente in linguaggio C ke dato un numero ne sommi le cifre e stampi a video gli addendi ed il riisultato della somma...

tipo 636----> 6 + 3 + 6 = 15


Ciauz
Dondi636
Starting Member
Starting Member
 
Messaggio: 1 di 1
Iscritto il: 28/01/2005, 21:12

Messaggioda Tipper » 29/01/2005, 10:32

Prova con questo:

main()
{
int i, n, s, num[n-1];
printf("Da quante cifre è composto il numero? ");
scanf("%d", &n);
printf("\n");
i=0;
for(i=0;i<=(n-1);i++)
{
printf("Inserisci la %d° cifra", i+1);
scanf("%d", &num[i]);
}
i=0;
printf("Il numero che hai scritto è ");
for(i=0;i<=(n-1);i++)
{
printf("%d", num[i]);
}
printf("\nLa somma delle cifre è ");
i=0;
for(i=0;i<=(n-2);i++)
{
printf("%d + ", num[i]);
}
printf("%d =", num[n-1]);
s=0;
i=0;
for(i=0;i<=(n-1);i++)
{
s=num[i]+s;
}
printf("%d", s);
}
Avatar utente
Tipper
Cannot live without
Cannot live without
 
Messaggio: 91 di 5464
Iscritto il: 30/11/2004, 17:29

Messaggioda Nidhogg » 29/01/2005, 15:21

Ecco la mia soluzione. Tipper vedi che hai fatto un errore nella dichiarazione delle variabili.

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main ()
{
  int i,somma=0;
  int n=0;
  char s[256];
  printf ("Numero: ");
  gets(s);
 
  for (i=0; s[i]>='0' && s[i]<='9'; ++i){
               n = 10 * n + s[i] - 48;
               somma += n;
               if (i<strlen(s)-1) printf("%d + ",n);
                  else printf("%d = %d",n,somma);
                           n = 0;
                  }
  return 0;
}


Ciao, Ermanno.


"Il motore dell’invenzione matematica non è il ragionamento, ma l’immaginazione." Augustus De Morgan
Nidhogg
Senior Member
Senior Member
 
Messaggio: 257 di 1491
Iscritto il: 24/02/2004, 18:29
Località: Baronissi (Salerno) - Italia


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite