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