user-0 提问: F:\C语言程序\链表.cpp(197) : error C2601: 'Convert' : local function definitions are i

回复:
user: user-1
content: 偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译，直到定位到具体语法出错的位置。” 的方法解决的。

user: user-2
content: 这代码哪来的？ 各种编译错误和逻辑错误。 帮你把编译的错误都改了，但还有很多别的错误，建议自己单步调试。 单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。  #include<stdio.h> #include<stdlib.h> typedef int datatype; typedef struct node { 	datatype data; 	struct node *next;//结构体指针用作结构体成员 }lnode;    lnode *createlinklist(); lnode *get_linklist(lnode *head, int i); void print(lnode *head);//函数声明后面记得一定有一个分号； lnode *locate_linklist(lnode *head, int x); void insert_linklist(lnode *head, int i, int x); int del_linklist(lnode *head, int i, int n); void del_linklist_key(lnode *head, int x); void convert(lnode *head); lnode *fuzhi_linklist(lnode *head); void del_jishudatalinklist(lnode *head);  void main() { 	lnode *head, *found1, *found2; 	int i, x; 	head = createlinklist(); 	printf("请输入查找序号"); 	scanf("%d", &i); 	found1 = get_linklist(head, i); 	printf("请输入查找值"); 	scanf("%d", &x); 	found2 = locate_linklist(head, x); 	insert_linklist(head, i, x); 	del_linklist_key(head, x);//删除值相同的多与节点 	print(head); }    lnode *createlinklist() { 	lnode *head, *p, *q;//p为定位指针 	int x, n, i; 	if ((head = (lnode*)malloc(sizeof(lnode))) == NULL) 	{ 		printf("链表申请失败\n"); 		return NULL; 	}  	else 		head->next = NULL; 	printf("请输入链表的节点数:"); 	scanf("%d", &n); 	printf("请输入数据:");   	for (i = 0; i < n; i++) 	{ 		scanf("%d", &x); 		p = head; 		if (i == 0) 			head->data = n;//头结点数据域中放结点个数   		if ((q = (lnode*)malloc(sizeof(lnode))) == NULL) 		{ 			printf("新节点申请失败\n"); 			break; 			return NULL; 		} 		else 		{ 			q->data = x; 			q->next = head->next; 			head->next = q; 			p = q; 			printf("\n请输入数据:"); 		}  	}  	return head;//返回头指针 }  lnode *get_linklist(lnode *head, int i) { 	lnode *p = head->next;//从第一个结点开始查找；p为查找指针 	int j = 1;//计数器  	while (p != NULL&&j < i) 	{ 		p = p->next;//查找指针后移 		j++;//计数器加一 	}  	if (p != NULL) 		return p;//返回第i个结点的指针值，找不到则返回空值 	else 		return NULL; }  lnode *locate_linklist(lnode *head, int x) { 	lnode *p = head->next;//从第一个结点开始查找；p为查找指针  	while (p != NULL && (p->data != x)) 		p = p->next;//指针后移 	return p;//返回值为x的结点的指针值，找不到则返回空值  }   void insert_linklist(lnode *head, int i, int x)//在单链表head的第i个位置插入值x { 	lnode *p, *q;//从第一个结点开始查找；,q为待插指针 	p = get_linklist(head, i - 1);  	if (p == NULL) 		printf("error\n");  	else 	{ 		q = (lnode*)malloc(sizeof(lnode));//申请结点空间 		q->data = x; 		q->next = p->next; 		p->next = q; 	}  }   int del_linklist(lnode *head, int i, int n)//n为节点个数 { 	lnode *p, *q; 	int *x = new int, m;//m保存结点个数 	p = get_linklist(head, i - 1);//p指向第i-1个指针 	if (p == NULL) 		printf("第i-1结点不存在"); 	else 	if (p->next == NULL) 		printf("第i结点不存在"); 	else 	{ 		q = p->next;//q指向第i个指针 		*x = q->data;//备份i的数据 		p->next = q->next; 		free(q);//回第i个指针收地址 		n--; 		m = n; 	} 	return m; }   void print(lnode *head) { 	lnode *p;//p为定位指针 	int i = 0;//i输出节点的个数 	p = head->next; 	while (p != NULL) 	{ 		i++; 		printf("第%d个数据: %d\n", i, p->data); 		p = p->next; 		printf("线性表的表长为: %d\n", i); 	}  }   void del_linklist_key(lnode *head, int x) { 	lnode *p = NULL, *q, *ptr, *m; 	m = locate_linklist(head, x);  	while (p != NULL)//检查表中x以后的所有节点 	{ 		q = m; 		ptr = m->next; 		while (ptr != NULL)//检查节点p后面所有的后继结点ptr 		{ 			if (ptr->data == p->data) 			{ 				q->next = ptr->next; 				ptr = q->next; 				free(ptr); 			} 			else 			{ 				q = ptr; 				ptr = ptr->next; 			} 			p = p->next; 		}  	} } void Convert(lnode *head)//实现单链表 的逆置 { 	lnode *p, *q; 	p = head->next;//指针p指向剩余结点中的第一个数据结点 	head->next = NULL; 	while (p != NULL) 	{ 		q = p; 		p = p->next; 		q->next = head->next; 		head->next = q; 	}  }   lnode *fuzhi_linklist(lnode *head)//将一个单链表中的元素复制到另一个单链表中 { 	lnode *head1, *p1, *p, *weij;  	if ((head1 = (lnode *)malloc(sizeof(lnode))) != NULL) 	{ 		printf("内存分配成功\n"); 		p = head->next; 		p1 = head1->next;//p1指针指向head1的第一个节点 		while (p != NULL) 		{ 			if (((p->data) % 2) == 0) 			{ 				if ((weij = (lnode *)malloc(sizeof(lnode))) != NULL) 				{ 					p1->next = weij; 					p1 = weij; 					weij->data = p->data;  				} 				else 					break; 			} 			else 				p = p->next;  		} 		return head1;  	}  	else 		return NULL;  }   void del_jishudatalinklist(lnode *head)//删除其中的奇数节点的值 { 	lnode *p = head->next, *q = NULL;//p指针指向第一个节点 	while (p != NULL)//循环保证所有的节点的指针不为空 	{ 		if (((p->data) % 2) != 0) 		{ 			q->next = p->next; 			free(p); 			p = q->next; 		} 		else 		{ 			q = p; 			p = p->next; 		} 	} }

user: user-3
content: Convert函数定义前面的那个函数，是不是少了一个右大括号？

user: user-0
content: \C语言程序\链表.cpp(197) : error C2601: 'Convert' : local function definitions are illegal F:\C语言程序\链表.cpp(213) : error C2601: 'fuzhi_linklist' : local function definitions are illegal F:\C语言程序\链表.cpp(250) : error C2601: 'del_jishudatalinklist' : local function definitions are illegal F:\C语言程序\链表.cpp(267) : fatal error C1004: unexpected end of file found 执行 cl.exe 时出错.  链表.obj - 1 error(s), 0 warning(s)    怎么改，请问各位