对Switch语句有点困惑

对Switch语句有点困惑,c,C,我对C编程非常陌生,我需要帮助! 我在Switch语句的帮助下制作了一个计算器程序,我希望这个程序在一个循环中,这样它就可以与用户一次又一次地询问菜单(即输入您的选择:除法、乘法、加法等)。 另外,我想,一个在菜单中的案件结束选项,这将关闭程序。我不知道如何编写结束选项,这将使程序关闭。 请帮忙 #include<stdio.h> #include<conio.h> int main() { int a,b,choice; float sum,mul,div,s

我对C编程非常陌生,我需要帮助! 我在Switch语句的帮助下制作了一个计算器程序,我希望这个程序在一个循环中,这样它就可以与用户一次又一次地询问菜单(即输入您的选择:除法、乘法、加法等)。 另外,我想,一个在菜单中的案件结束选项,这将关闭程序。我不知道如何编写结束选项,这将使程序关闭。 请帮忙

#include<stdio.h>
#include<conio.h>

int main()
{
  int a,b,choice;
  float sum,mul,div,sub,quo;
  printf("\n\t\t\t\t CALCULATOR");
  printf("\nEnter the First Number: ");
  scanf("%d",&a);

  printf("Enter the Second Number: ");
  scanf("%d",&b);

  printf("\n Enter Your Choice");
  printf("\n\n1.Sum");
  printf("\n2.Multiplication");
  printf("\n3.Division");
  printf("\n4.Subtraction");
  printf("\n5.Quotient");
  printf("\nYOUR CHOICE: ");
  scanf("%d",&choice);
  switch(choice)
  {
    case 1:
    sum=a+b;
    printf("Sum= %f\n",sum);
    break;
    case 2:
    mul=a*b;
    printf("Multiplication= %f\n",mul);
    break;
    case 3:
    div=a/b;
    printf("Division= %lf\n",div);
    break;
    case 4:
    sub=a-b;
    printf("Subtraction= %f\n",sub);
    break;
    case 5:
    quo=a%b;
    printf("Quotient= %f\n",quo);
    break;
    default:
      printf("\n Unavailable Choice");
  }
return 0;
getch();
}
#包括
#包括
int main()
{
INTA,b,选择;
浮点数、mul、div、sub、quo;
printf(“\n\t\t\t计算器”);
printf(“\n输入第一个数字:”);
scanf(“%d”和“&a”);
printf(“输入第二个数字:”);
scanf(“%d”和“b”);
printf(“\n输入您的选择”);
printf(“\n\n1.Sum”);
printf(“\n2.乘法”);
printf(“\n3.分部”);
printf(“\n4.减法”);
printf(“\n5.商”);
printf(“\n您的选择:”);
scanf(“%d”,选择(&C);
开关(选择)
{
案例1:
总和=a+b;
printf(“总和=%f\n”,总和);
打破
案例2:
mul=a*b;
printf(“乘法=%f\n”,mul);
打破
案例3:
div=a/b;
printf(“分区=%lf\n”,div);
打破
案例4:
sub=a-b;
printf(“减法=%f\n”,sub);
打破
案例5:
quo=a%b;
printf(“商=%f\n”,quo);
打破
违约:
printf(“\n不可用选项”);
}
返回0;
getch();
}

假设您添加选项6以关闭计算器,您可以添加以下案例以退出程序-

case 6: 
    // print bye message or whatever
    exit(0); 
    break;
您可以阅读有关函数的内容以及传递给函数的参数的含义。通常
0
表示成功退出程序


如果要使用
exit
,我建议引入循环条件变量,例如CarryOn,将其初始化为1,并在while循环中使用。只要变量为1,就让循环继续。当用户选择“结束”时,将变量设置为0。这将结束循环

让我用一些示例代码大纲来说明这一点:

int CarryOn = 1;
while (CarryOn == 1)
{
  // ...your original code
  // ...
  // add to switch
  case 6: // 6 will be the "End" / "Exit" option
    CarryOn = 0;
    break;
}

你需要有一个while循环

while(true){
printf("\n\t\t\t\t CALCULATOR");
  printf("\nEnter the First Number: ");
  scanf("%d",&a);
....
//return 0; remove the return statement
getch();

 }
还可以将菜单项6)Exit添加到printf中,并按照上面的答案之一处理该选项

case 6: 
    // print bye message or whatever
    exit(0); 
    break;

您应该考虑将选项5重命名为“余数”而不是“商”。请参阅此帮助<代码> <代码>不是标准标题。你的
getch()从未到达。最好同时删除这两个字符串。首选
\n
printf
格式控制字符串的末尾(而不是开头),因为
stdout
通常是行缓冲的。或者学习使用
fflush
BTW,使用所有警告和调试信息进行编译(
gcc-Wall-Wextra-g
with),并学习如何使用调试器
gdb
根据我的经验,
exit
最适合优雅的崩溃。在
main
中时,只需返回错误代码并清除堆栈即可。@wbadart清除堆栈对于C来说不是必需的,因为没有析构函数,地址空间也会被销毁。这只是一个选择的问题。@wbadart:优雅的崩溃是通过
abort()实现的
exit
功能用于正常退出。@Devanshu,确切的问题是什么?输入
6
后程序是否仍在运行?我是否也需要在任何地方声明它?我不理解它,请澄清它,因为我对C编程非常陌生。当然,我添加了一些示例大纲。好的,你已经打开了循环,但我想你还没有关闭它。还有,它说True是未声明的,我已经声明它是一个整数,现在它正在工作,顺便说一句,我认为这不是一个好方法,是吗?如果你想重复它,直到用户选择退出选项,你需要一个循环。循环可能有多种方式。例如://不要添加结束选项。int循环=1;while(loop){您在这里编码.printf(“\n\t\t\t\t CALCULATOR”);printf(\n输入第一个数字:”;scanf(%d,&a);..//return 0;删除return语句printf(“您想继续(Y/n)”);getch();//用户可以输入Y或n。//相应地将循环设置为0或1//0将退出循环//1将继续循环。}这只是你个人喜好的一个例子,以及你喜欢怎么做