user-0 提问: 点菜系统，C语言，求大神指教，结果有问题

回复:
user: user-1
content: #include<stdio.h> #include<stdlib.h>  int order(int a) {	 	char m; 	int n; 	scanf("%c",&m); 	if(m=='y') 	{ 		 		printf("输入编号，选择需要的菜品："); 			scanf("%d",&n); 		switch(n) 		{ 		case 1: 			printf("选定鱼香肉丝\n"); 			break; 		case 2: 			printf("已选定番茄鸡蛋\n"); 			break; 		case 3: 			printf("已选定紫菜蛋汤\n"); 			break; 		case 4: 			printf("已选定红烧茄子\n"); 			break; 		case 5:exit(0); 			break; 		default:printf("输入错误！"); 		}  	} 	 	else if(m=='n') 	{ 		a=1; 	} 	return a; } void menu() { 		 	int n,a; 	//char m; 	a=0; 	printf("-------------------------------------------------------------------\n"); 	printf("                          菜单系统                 \n"); 	printf("-------------------------------------------------------------------\n"); 	printf("\n"); 	printf("\n"); 	printf("选择需要的菜品：\n"); 	printf("1.鱼香肉丝；                  2.番茄鸡蛋;\n"); 	printf("3.紫菜蛋汤；                  4.红烧茄子;\n"); 	printf("5.退出;\n"); 	printf("\n"); 	printf("输入编号，选择需要的菜品：");  	scanf("%d",&n); 	switch(n) 	{ 	case 1: 		printf("已选定鱼香肉丝\n"); 		break; 	case 2: 		printf("已选定番茄鸡蛋\n"); 		break; 	case 3: 		printf("已选定紫菜蛋汤\n"); 		break; 	case 4: 		printf("已选定红烧茄子\n"); 		break; 	case 5:exit(0); 		break; 	default:printf("输入错误！"); 	}  	while(a==0) 	{ 		printf("是否继续点菜：y or n \n"); 		order(a); 	} 	 	printf("点菜完毕\n"); 	 } int main() { 	menu(); 	return 0; }  没什么大问题，这种程序中看不中用，看着口水都流出来了

user: user-2
content: #include<stdio.h> #include<stdlib.h>  int order(int a) { 	char m; 	int n; 	scanf("%c",&m); 	if(m=='y') 	{  		printf("输入编号，选择需要的菜品："); 			scanf("%d",&n); 		switch(n) 		{ 		case 1: 			printf("选定鱼香肉丝\n"); 			break; 		case 2: 			printf("已选定番茄鸡蛋\n"); 			break; 		case 3: 			printf("已选定紫菜蛋汤\n"); 			break; 		case 4: 			printf("已选定红烧茄子\n"); 			break; 		case 5:exit(0); 			break; 		default:printf("输入错误！"); 		} 	}  	else if(m=='n') 	{ 		a=1; 	} 	return a; } void menu() {  	int n,a; 	//char m; 	a=0; 	printf("-------------------------------------------------------------------\n"); 	printf("                          菜单系统                 \n"); 	printf("-------------------------------------------------------------------\n"); 	printf("\n"); 	printf("\n"); 	printf("选择需要的菜品：\n"); 	printf("1.鱼香肉丝；                  2.番茄鸡蛋;\n"); 	printf("3.紫菜蛋汤；                  4.红烧茄子;\n"); 	printf("5.退出;\n"); 	printf("\n"); 	printf("输入编号，选择需要的菜品：");  	scanf("%d",&n); 	switch(n) 	{ 	case 1: 		printf("已选定鱼香肉丝\n"); 		break; 	case 2: 		printf("已选定番茄鸡蛋\n"); 		break; 	case 3: 		printf("已选定紫菜蛋汤\n"); 		break; 	case 4: 		printf("已选定红烧茄子\n"); 		break; 	case 5:exit(0); 		break; 	default:printf("输入错误！"); 	}  	while(a==0) 	{ 		getchar(); 		printf("是否继续点菜：y or n \n"); 		a = order(a); 	}  	printf("点菜完毕\n");  } int main() { 	menu(); 	return 0; }

user: user-2
content: default:printf("输入错误！"); 输入错误后，难道仅仅输出“输入错误”就没了？ 可以在输出后面加一个exit(0)退出程序

user: user-2
content: 引用 8 楼 u013564902 的回复:引用 6 楼 xiaodeerdeer 的回复:[quote=引用 5 楼 u013564902 的回复:] [quote=引用 4 楼 xiaodeerdeer 的回复:] a 始终都是0 所以结束不了order函数中，有另a=1的啊  在int order(int a)里面改变a值有用吗 最起码也的&a 才行啊[/quote]是这样？int order (int &a)? 但是结果中，是否继续点菜为什么还是出现了两次？[/quote] 	while(a==0) 	{ 		printf("是否继续点菜：y or n \n"); 		getchar(); 		order(a); 	} 加一个getchar，消除回车

user: user-0
content: 引用 9 楼 xiaodeerdeer 的回复:还是你a 用的不对能不能直接帮我指出来

user: user-3
content: 还是你a 用的不对

user: user-0
content: 引用 6 楼 xiaodeerdeer 的回复:引用 5 楼 u013564902 的回复:[quote=引用 4 楼 xiaodeerdeer 的回复:] a 始终都是0 所以结束不了order函数中，有另a=1的啊  在int order(int a)里面改变a值有用吗 最起码也的&a 才行啊[/quote]是这样？int order (int &a)? 但是结果中，是否继续点菜为什么还是出现了两次？

user: user-0
content: 引用 6 楼 xiaodeerdeer 的回复:引用 5 楼 u013564902 的回复:[quote=引用 4 楼 xiaodeerdeer 的回复:] a 始终都是0 所以结束不了order函数中，有另a=1的啊  在int order(int a)里面改变a值有用吗 最起码也的&a 才行啊[/quote]ORDER不是会返回a值吗，&a指的是在哪里？

user: user-3
content: 引用 5 楼 u013564902 的回复:引用 4 楼 xiaodeerdeer 的回复:a 始终都是0 所以结束不了order函数中，有另a=1的啊  在int order(int a)里面改变a值有用吗 最起码也的&a 才行啊

user: user-0
content: 引用 4 楼 xiaodeerdeer 的回复:a 始终都是0 所以结束不了order函数中，有另a=1的啊

user: user-3
content: a 始终都是0 所以结束不了

user: user-0
content: 不行啊，结果出错。

user: user-2
content: 什么问题楼主倒是说一下啊！！！万一因为运行环境不同，导致别人显示出现的错误和你不一样呢！！！

user: user-4
content: http://bbs.csdn.net/topics/390471779