# include <stdio.h>
# include <stdlib.h>
struct chain
{
int value;
struct chain *next;
};
struct chain *create ()
{
struct chain *head,*tail,*p;
int n,i,x;
head = tail = NULL;
printf("Enter a number : ");
scanf("%i",&n);
do
{
p = ((struct chain *)malloc(sizeof(struct chain)));
p->value = n%10;
if (head == NULL)
head = tail = p;
else
tail = tail->next;
tail->next =p;
n/=10;
} while (n!=0);
return head;
}
int main (void)
{
struct chain *p,*q;
# include <stdlib.h>
struct chain
{
int value;
struct chain *next;
};
struct chain *create ()
{
struct chain *head,*tail,*p;
int n,i,x;
head = tail = NULL;
printf("Enter a number : ");
scanf("%i",&n);
do
{
p = ((struct chain *)malloc(sizeof(struct chain)));
p->value = n%10;
if (head == NULL)
head = tail = p;
else
tail = tail->next;
tail->next =p;
n/=10;
} while (n!=0);
return head;
}
int main (void)
{
struct chain *p,*q;
int sum=0,i=0;
p = create();
while (p)
{
printf("%4i",p->value);
sum +=p->value;
q =p->next;
free(p);
p=q;
i++;
}
printf("\nThe Sum is %4i,the number is %i\n",sum,i);
return 0;
}
测试:
[root@security Gcc]# ./a.out
Enter a number : 23
3 2
The Sum is 5,the number is 2
[root@security Gcc]# ./a.out
Enter a number : 123456
6 5 4 3 2 1
The Sum is 21,the number is 6