问题描述
我正在尝试打印逻辑门的真值表。我必须使用链表和特定结构。
typedef struct data
{
int value;
struct data * next;
} Data;
typedef Data * DataList;
int myandlst(DataList *list);
int report(DataList inputs);
int main( )
{
DataList inputs=NULL;
myandlst(&inputs);
report(inputs);
return 0;
}
Data * createData( int value)
{
Data * dataptr;
dataptr = malloc(sizeof (Data));
dataptr->value = value;
dataptr->next = NULL;
return dataptr;
}
void appendData(DataList *lstptr,Data *newptr)
{
if (*lstptr==NULL)
{
*lstptr = newptr;
return;
}
appendData( &((*lstptr)->next),newptr);
return;
}
int myandlst (DataList *inlist)
{
int i,j;
for (i=0; i<2; i++)
{
for (j = 0; j<2; j++)
{
appendData(inlist,createData(i*j));
}
}
return 0;
}
int report(DataList inputs)
{
DataList temp ;
if (inputs == NULL)
return;
for (temp = inputs; temp != NULL; temp = temp->next)
printf("%d\n",temp->value);
printf("\n");
return 0;
}
我已经设法将值传递给列表并打印出来。我不知道该怎么做是打印门的完整真值表。 当前输出:
0
0
0
1
所需的输出:
0 0 0
0 1 0
1 0 0
1 1 1
有没有我想不到的好方法来做到这一点?该程序应该每次输入 n 次,而不仅仅是 2 次,因此我想到的很多技巧都行不通。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)