-2

我用C编写了一个代码,但是在执行时,它出现了错误。

我可以知道如何组合正确的结构吗?请指教,谢谢

输出结果:

Enter integers: 23  12  34  56  78  12
Traversing the list : 23->12->34->56>78->12
Minimum value : 12
Reversing the list: 12->78->56->34->12->23

编码:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

struct node
{
    int data;
    struct node *next;
} *head;

void insert_data(int value)
{
    struct node *var,*temp;
    temp=head;
    var=(struct node *)malloc(sizeof(struct node));
    var->data=value;

    if(head==NULL)
    {
        head=var;
        head->next=NULL;
    }
    else
    {
        while(temp->next!=NULL)
        {
            temp=temp->next;
        }
        var->next=NULL;
        temp->next=var;
    }
}

void reverse_list()
{
    struct node *temp,*temp1,*var;
    temp=head;
    var=NULL;
    while(temp!=NULL)
    {
        temp1=var;
        var=temp;
        temp=temp->next;
        var->next=temp1;
    }
    head=var;
}

void display()
{
    struct node *var;
    var=head;
    printf("\nlist of elments are \n");

    while(var!=NULL)

    {
        printf(" %d ->",var->data);
        var=var->next;
    }
}


int main()
{
    int i,value;
    char ch='y';
    head=NULL;

    printf("\nEnter Integers: ");
    scanf("%d",&value);
    insert_data(value);
    display();

    getch();
    return 0;
}
4

1 回答 1

0

无法理解问题,但您的代码只要求一个元素。

制作一个循环以输入更多元素:

int main()
{
    int i,value = 0;
    char ch='y';
    head=NULL;

    printf("\nEnter Integers: ");

    // here it is
    while (value != -1) {   
    scanf("%d",&value);
    insert_data(value);
    display();
    }

    getch();
    return 0;
}
于 2013-11-12T12:33:08.477 回答