求教2个有关C语言的问题~

来源:百度知道 编辑:UC知道 时间:2024/05/18 10:54:05
1.用户输入一个数,然后进入一个switch语句体,对于default的情况我想让输出“错误信息”,然后再让重新输入,即再进入一遍switch,怎么样做最简单?
2.我编的程序要求能够返回上一级菜单,用什么办法呢?指针吗?
谢谢!
第一个问题我试着用do-while做了一下
do
{printf("...");
scanf("...");
switch(s)
{case 1: ...;
case 2:...;
case 3:...;
default:...;
}
while(s!=(1||2||3));
printf,scanf是用来输入我定义的变量s的值的
我想让s不等于1也不等于2也不等于3
但为什么结果除了s=1都执行循环呢

答1,用转向语句:

Lab_redo:
printf("...");
scanf("...");

switch(s)
{
case 1: ...; break;
case ......; break;
default:
printf("error !\n");
goto Lab_redo;
break;
};

答2,
条件要写正确。
如果你希望不等于1,也不等于2,也不等于3要返回去再输入和计算:

#include <stdio.h>
main()
{
int s;
do
{
printf("please input a integer\n");
scanf("%d",&s);

switch(s)
{
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
case 3: printf("3\n"); break;
default:; break;
}
}
while(s!=1 && s!=2 && s!=3);

exit(0);
}

第一个问题我把它改了一下:
do
{printf("...");
scanf("...");
switch(s)
{case 1: ...;
case 2:...;
case 3:...;
default:{ printf("error"); continue;}