我对编程还比较陌生,但是真的很喜欢它。我参加了几节课,但大部分都是为了娱乐(现在)。我决定制作一个实现一些基本功能,switch语句和用户输入的程序。请留下任何有关如何使该程序更好的反馈。谢谢!
#include <iostream>
using namespace std;
int add (int x, int y){
return x+y;
};
int divide (int x, int y){
return x/y;
}
int multiply (int x, int y){
return x*y;
}
int subtract (int x, int y){
return x-y;
}
int main(){
int n1;
int n2;
int user14 = 0;
SomeLine:
cout << "Enter your 2 numbers: "<< endl;
cin >> n1;
cin >> n2;
cout << "Ok, now what do you want to do with those numbers? "<< endl;
cout << "1) Add: " << endl;
cout << "2) Divide: "<<endl;
cout << "3) Multiply: "<< endl;
cout << "4) Subtration: "<< endl;
cin >> user14;
switch (user14)
{
case 1:
cout << n1+n2 << endl;
break;
case 2:
cout << n1/n2 << endl;
break;
case 3:
cout << n1*n2<< endl;
break;
case 4:
cout << n1-n2 << endl;
break;
}
char userchoice;
cout << "Would you like to perform any other operations? y/n "<< endl;
cin >> userchoice;
if (userchoice=='y'){
goto SomeLine;
}
else if(userchoice=='n'){
goto Exit;
}
Exit:
return 0;
};
答案 0 :(得分:0)
我要回答,因为我是新来的,有几件事可以帮助您。我不确定是应该鼓励还是不回答这类文章,但我想我还是想帮忙...
我注意到的第一件事是,您为所有操作制作了大量函数,但从未使用过它们,而是选择了switch语句。
可以在代码中利用函数的几种方式:
//use in the switch statement
switch(input) {
case 1:
cout << add(a,b) << endl;
break;
case 2:
cout << divide(a,b) << endl;
break;
我选择在该代码段中包含除法,因为我想告诉您有关截断的信息。在C ++和许多其他支持类型的编程语言中,从double类型转换为int类型时,会遇到截断的情况。
这发生在除法中。如果将5除以2(5/2),则将得到2.5。但是,因为您是将其分配给一个int,所以它仅存储为2(小数会被切掉),因为int无法处理小数。
对于计算器,我完全建议将您使用的所有int值都转换为double值,以解决截断错误。如果您出于某种原因而不是 2147483647 进行较大的计算,则需要使用double值,因为它们可以存储约15位数字read more here。
此外,不要在函数括号后面放分号(仅在您的add函数上)。
否则,它在格式方面看起来非常不错,并且您使用的是一些我不常用的很酷的概念(goto和switch语句)。
保持它!