#include<stdio.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
}stack;
void init(stack *&head)
{
head=(stack *)malloc(sizeof(stack));
head->next=NULL;
}
void add(stack *&head,int x)
{
stack *p;
p=(stack *)malloc(sizeof(stack));
p->data=x;
p->next=head->next;
head->next=p;
}
main()
{
int i,a,num;
stack *st;
init(st);
printf("本程序的功能是:输入一些数字(只能是正数,负数和零),显示出各自的个数\n\n");
printf("请输入你想要输入多少个数字:\n");
scanf("%d",&num);
printf("请输入你想要输入的数字:\n");
stack *p;
for(i=0;i<num;i++)
{
printf("数字%d:",i+1);
scanf("%d",&a);
add(st,a);
}
int m=0,n=0,k=0;
for(p=st->next;p!=NULL;p=p->next)
{
if(p->data>0)
{
m++;
}
else if(p->data==0)
{
n++;
}
else
{
k++;
}
}
printf("正数的个数是:%d\n\n",m);
printf("0的个数是:%d\n\n",n);
printf("负数的个数是:%d\n\n",k);
}