讨教一下关于switch语句中变量定义的相关问题

C语言 码拜 9年前 (2016-04-08) 1211次浏览
#include<stdio.h>
#include<stdlib.h>
#include”标头.h”
int main(void)
{
int Order = 0;
printf(“请输入命令数:\n”);
scanf(“%d”, &Order);
printf(“输入代码后回车。\n”);
for (int i = 0; i < Order; i++)
{
char buf[20];
scanf_s(“%s”, buf, 19);
switch (buf[0])
{
case “C”:
{
LnList PLink = (LnList)malloc(sizeof(LList));
PLink = createLnList();
//这里本人原来是PNode PLink = createLnList();的
后来提示错误 2 error C2065: “PLink”: 未声明的标识符 g:\学习\vs数据结构\链式顺序表\链式顺序表\源.cpp 38 1 链式顺序表

 “PLink”: 未声明的标识符
int test = 0;
scanf(“%d”, &test);
break;
}
case “A”:
{
if (buf[1] = “P”)
{
printf(“输入添加的值:x=?\n”);
int a = 0;
scanf(“%d”, &a);
appendElemLnList(PLink, a);
}
else
{
int j, x;
printf(“请输入index和x(用空格隔开)。\n”);
scanf(“%d %d”, &j, &x);
inserPreLnList(PLink, j, x);
}
break;
}
case “P”:
{
printLnList(PLink);
break;
}
case “R”://删除下标为p的节点,也就是删除第p+1个元素
{
printf(“请输入要删除元素的下标:\n”);
int xiabiao;
scanf(“%d”, &xiabiao);
deleteIndexLnList(PLink, xiabiao + 1);
break;
}
case “D”:
{
destroyLnList(PLink);
}
}
}
printf(“\n\n\n输入任何字符可以关闭程序~\n\n”);
getchar();
return 0;
}
解决方案

40

原因是PLink的作用域的问题所以报错,你把PLink往外挪一层就行了

#include<stdio.h>
#include<stdlib.h>
#include"标头.h"
int main(void)
{
	int Order = 0;
	printf("请输入命令数:\n");
	scanf("%d", &Order);
	printf("输入代码后回车。\n");
	for (int i = 0; i < Order; i++)
	{
		LnList PLink;
		char buf[20];
		scanf_s("%s", buf, 19);
		switch (buf[0])
		{
		case "C":
		{
					PLink = (LnList)malloc(sizeof(LList));
					PLink = createLnList();
					//这里本人原来是PNode PLink = createLnList();的
					后来提示错误	2	error C2065 : “PLink” : 未声明的标识符	g : \学习\vs数据结构\链式顺序表\链式顺序表\源.cpp	38	1	链式顺序表
					“PLink” : 未声明的标识符
							  int test = 0;
					scanf("%d", &test);
					break;
		}
		case "A":
		{
					if (buf[1] = "P")
					{
						printf("输入添加的值:x=?\n");
						int a = 0;
						scanf("%d", &a);
						appendElemLnList(PLink, a);
					}
					else
					{
						int j, x;
						printf("请输入index和x(用空格隔开)。\n");
						scanf("%d %d", &j, &x);
						inserPreLnList(PLink, j, x);
					}
					break;
		}
		case "P":
		{
					printLnList(PLink);
					break;
		}
		case "R"://删除下标为p的节点,也就是删除第p+1个元素
		{
					 printf("请输入要删除元素的下标:\n");
					 int xiabiao;
					 scanf("%d", &xiabiao);
					 deleteIndexLnList(PLink, xiabiao + 1);
					 break;
		}
		case "D":
		{
					destroyLnList(PLink);
		}
		}
	}
	printf("\n\n\n输入任何字符可以关闭程序~\n\n");
	getchar();
	return 0;
}
更多 0

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教一下关于switch语句中变量定义的相关问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)