为什么我的代码不起作用?链接列表

时间:2014-03-02 19:09:25

标签: c

  

q2演示链表操作:插入,显示和显示缺失//

     

编译器代码块告诉行

处的两个错误      

73和83我已经预期了;在'{'令牌

之前      

和输入结尾的预期声明或声明* /

     

但它也告诉我在函数中创建:   这两个错误都存在!当它们将它们引用到main()

时,它是如何可能的
#include <stdio.h>
#include <stdlib.h>

struct list
{
    int a;
    char name[20];
    int roll;
    struct list *next;
};

struct list *create(struct list *ptr)
{
    int v,n;
    printf("\nenter the value of the inputs");
    scanf("%d",&n);
    struct list *temp;
    printf("\ndo u want to continue(y/n)");
    scanf("%d",&v);
    while(1)
    {
        if(v=='y')
        {
            ptr=(struct list*)malloc(sizeof(struct list));
            printf("\nenter the roll number of the student");
            scanf("%d",&ptr->roll);
            printf("\nenter the name of the student");
            gets(ptr->name);
            printf("\nenter the marks of the student");
            scanf("%d",&ptr->a);
            ptr->next=NULL;
        }
        else
            if(v=='n')
            {
                break;
            }
        return(ptr);
    }
}
void display(struct list *ptr)
{
    struct list *temp;
    temp=ptr;
    while(temp!=NULL)
    {
        printf("\nthe roll number of the student is%d",temp->roll);
        printf("\nthe name of the student is%d",temp->name);
        printf("\nthe marks  of the student is%d",temp->a);
        temp=temp->next;
    }
}

void del(struct list *ptr,int c)
{
    struct list *temp;
    struct list *gtemp;
    gtemp=temp=ptr;

    while(temp->roll!=c)
    {
        gtemp=temp;
        temp=temp->next;
    }
    gtemp->next=temp->next;
    free(temp);
}
main()
{ //73
    struct list *ptr;
    int c;
    ptr=NULL;
    ptr=create(ptr);
    display(ptr);
    printf("\nenter the value of roll number");
    scanf("%d",&c);
    del(ptr,c);
    display(ptr);
}//83

2 个答案:

答案 0 :(得分:1)

关于第一个expected ; before'{' token错误,而不是

main()

你应该使用完整的签名

int main(int argc, char **argv)

对于第二个错误,您应该首先正确缩进代码。

答案 1 :(得分:1)

正确检查{}组合。你在create {}函数里面大部分都写了display()函数。所以正确添加{}对。添加保持代码缩进 在display()函数定义之前添加一个结束'}' 和

 printf("\nthe name of the student is%d",temp->name);

字符串应为%s。