Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 新的链表包含上一个链表_C_Linked List - Fatal编程技术网

C 新的链表包含上一个链表

C 新的链表包含上一个链表,c,linked-list,C,Linked List,我有表示整数的链表(每个节点是整数中的一个数字)。当我尝试打印第二个或第三个链表时,在第二个链表中打印第二个和第一个链表,在第三个链表中,同时打印第三个、第二个和第一个链表,等等。我缺少什么?欢迎任何帮助。。。。 我使用的每个节点的结构是: typedef struct node { int digit; struct node *next; } listnode_t; 例如,这是我的主要任务 主要 我的输出是 Give a digit: 1 Give a digit: 7 Give a di

我有表示整数的链表(每个节点是整数中的一个数字)。当我尝试打印第二个或第三个链表时,在第二个链表中打印第二个和第一个链表,在第三个链表中,同时打印第三个、第二个和第一个链表,等等。我缺少什么?欢迎任何帮助。。。。 我使用的每个节点的结构是:

typedef struct node {
int digit;
struct node *next;
} listnode_t;
例如,这是我的主要任务

主要

我的输出是

Give a digit: 1
Give a digit: 7
Give a digit: 9
Give a digit: 5
17
End of printing number
9517
End of printing number
10249517
End of printing nunmber
我使用的三种方法是: 打印编号(列表节点头) 在列表头上取一个指针并打印元素

void print_number(listnode_t *head){

listnode_t *anode = head;

if (anode == NULL){

    printf("The list is empty\n");
}

else {


        while(anode != NULL){
        printf("%d",anode->digit);
        anode = anode->next;

            }
        printf("\n");
        printf("End of printing the number\n");

    }
}
listnode\u t*创建\u列表(int numdigits)


请正确格式化您的代码。它几乎不可读,不需要帮助。您需要将
head1
head2
初始化为
NULL
。谢谢@IanAbbott,现在可以按我的要求工作了。我知道我错过了一些简单的东西。再次感谢!请正确格式化您的代码。它几乎不可读,不需要帮助。您需要将
head1
head2
初始化为
NULL
。谢谢@IanAbbott,现在可以按我的要求工作了。我知道我错过了一些简单的东西。再次感谢!
void print_number(listnode_t *head){

listnode_t *anode = head;

if (anode == NULL){

    printf("The list is empty\n");
}

else {


        while(anode != NULL){
        printf("%d",anode->digit);
        anode = anode->next;

            }
        printf("\n");
        printf("End of printing the number\n");

    }
}
listnode_t *create_list(int numdigits){


listnode_t *ptr2;
listnode_t *head2;

int i;
int num[numdigits];
for(i=0;i<numdigits;i++){
    do{
    printf("Give a digit: ");
    scanf("%d",&num[i]);
    } while (num[i]>9 || num[i]<0);
}

    for(i=numdigits-1;i>=0;i--){
    ptr2 = (listnode_t*)malloc(sizeof(listnode_t));
    if (ptr2 == NULL){

    printf("\n Node creation failed \n");
    return NULL;
}


ptr2->digit = num[i];
ptr2->next = NULL;

ptr2->next = head2;
head2 = ptr2;

}

return ptr2;    

}
listnode_t *int_to_list(int num) {

listnode_t *ptr1;
listnode_t *head1;


int numOfdigits = countdigits(num);//counts the number of digits of integer 
                                   //num
int k = numOfdigits;
int digits[numOfdigits];
while (numOfdigits--) {
digits[numOfdigits]=num%10;
num/=10;

}


int i;
for(i=k-1;i>=0;i--){
    ptr1 = (listnode_t*)malloc(sizeof(listnode_t));
        if (ptr1 == NULL){

            printf("\n Node creation failed \n");
            return NULL;
}

ptr1->digit = digits[i];
ptr1->next = NULL;
ptr1->next = head1;
head1 = ptr1;


}

    return ptr1;
}