当前位置: 代码迷 >> C语言 >> [求助]switch的一个问题
  详细解决方案

[求助]switch的一个问题

热度:306   发布时间:2006-10-17 17:05:52.0
[求助]switch的一个问题

#include<stdio.h>

int main()
{
int a;
float C, F;
printf("Want C to F, please input 1!\n");
printf("Want F to C, please input 2! \n");
scanf("%d",&a);

switch(a)
{
case 1:
{printf("Plesse input C:\n");
scanf("%f",&C);
F=(9.0/5.0)*C+32.0;
printf("The F is:%g\n",F);}
break;
case 2:
{
printf("Please input F:");
scanf("%f",&F);
C=(5.0/9.0)*(F-32.0);
printf("The C is:%g\n",C);}
break;
default:
printf("Input error!\n");
}
return 0;
}
什么这个程序,如果要在输入非1和2的时候重新回到
printf("Want C to F,please input 1!");这里,不用goto,应该怎样改啊?

搜索更多相关的解决方案: switch  

----------------解决方案--------------------------------------------------------

#include<stdio.h>

int main()
{
int a;
float C, F;
printf("Want C to F, please input 1!\n");
do{
printf("Want F to C, please input 2! \n");
scanf("%d",&a);

switch(a)
{
case 1:
{printf("Plesse input C:\n");
scanf("%f",&C);
F=(9.0/5.0)*C+32.0;
printf("The F is:%g\n",F);}
break;
case 2:
{
printf("Please input F:");
scanf("%f",&F);
C=(5.0/9.0)*(F-32.0);
printf("The C is:%g\n",C);}
break;
default:
printf("Input error!\n");
}
}while(a);
return 0;
}


----------------解决方案--------------------------------------------------------
没明白楼主说什么,真不好意思.[ 什么这个程序,如果要在输入非1和2的时候重新回到
printf("Want C to F,please input 1!");这里,不用goto,应该怎样改啊?],这段是问?

是不是要在输入非1和2的时候,重新回到printf("Want C to F,please input 1!");这里?

可以在外面加个do,while语句.

[此贴子已经被作者于2006-10-22 0:04:57编辑过]


----------------解决方案--------------------------------------------------------

#include<stdio.h>

int main()
{
int a;
float C, F;
do
{
printf("Want C to F, please input 1!\n");
printf("Want F to C, please input 2! \n");
scanf("%d",&a);

switch(a)
{
case 1:
{
printf("Plesse input C:\n");
scanf("%f",&C);
F=(9.0/5.0)*C+32.0;
printf("The F is:%g\n",F);
}
break;
case 2:
{
printf("Please input F:");
scanf("%f",&F);
C=(5.0/9.0)*(F-32.0);
printf("The C is:%g\n",C);
}
break;
default:
printf("Input error!\n");
}
}
while (a != 1 && a != 2);
return 0;
}

不知道对不对,第一次发回贴,请大家多多指教.


----------------解决方案--------------------------------------------------------
以下是引用fans在2006-10-22 0:13:50的发言:

#include<stdio.h>

int main()
{
int a;
float C, F;
do
{
printf("Want C to F, please input 1!\n");
printf("Want F to C, please input 2! \n");
scanf("%d",&a);

switch(a)
{
case 1:
{
printf("Plesse input C:\n");
scanf("%f",&C);
F=(9.0/5.0)*C+32.0;
printf("The F is:%g\n",F);
}
break;
case 2:
{
printf("Please input F:");
scanf("%f",&F);
C=(5.0/9.0)*(F-32.0);
printf("The C is:%g\n",C);
}
break;
default:
printf("Input error!\n");
}
}
while (a == 1 ||a == 2);//如果像你那样a!= 1&&a!=2,那么输入2的时候就会结束循环.
return 0;
}

不知道对不对,第一次发回贴,请大家多多指教.

写的很好啊,只有一点小错误.
----------------解决方案--------------------------------------------------------

以下是引用nuciewth在2006-10-22 10:49:20的发言:

写的很好啊,只有一点小错误.

十分感谢,写的时候没注意。疏忽了。我初学c语言,请大家多多关照。谢谢~~~


----------------解决方案--------------------------------------------------------
  相关解决方案