C 单功能计算器
此计算器应使用一个功能(开关/机箱)工作。 不幸的是,我有编译错误,我不明白为什么C 单功能计算器,c,C,此计算器应使用一个功能(开关/机箱)工作。 不幸的是,我有编译错误,我不明白为什么 #include <stdio.h> float calculate(char optr, float opr1, float opr2) { switch(optr) { case '+': ergebnis = opr1+opr2; break; case '-': ergebnis = opr1-opr2; break; case '*': ergebnis = opr1*opr2; bre
#include <stdio.h>
float calculate(char optr, float opr1, float opr2) {
switch(optr) {
case '+': ergebnis = opr1+opr2; break;
case '-': ergebnis = opr1-opr2; break;
case '*': ergebnis = opr1*opr2; break;
case '/': ergebnis = opr1/opr2; break;
case 'q': exit(0);
default: cout <<"unbekanntes Rechenzeichen...\n"; return1;
}
return ergebnis;
}
int main(void) {
char optr;
float opr1, opr2, ergebnis;
//Eingabe
printf("\nEingabe Operator(+,-,*,/,q)"); scanf("%c", &optr);
printf("\nEingabe Zahl1"); scanf("%f", &opr1);
printf("\nEingabe Zahl2"); scanf("%f", &opr2);
//Verarbeitung
ergebnis = calculate(char optr, float opr1, float opr2);//Ausgabe
printf("\nErgebnis: %f\n", ergebnis);
return 0;
}
#包括
浮点计算(字符optr、浮点opr1、浮点opr2){
开关(optr){
案例“+”:ergebnis=opr1+opr2;中断;
案例'-':ergebnis=opr1-opr2;中断;
案例“*”:ergebnis=opr1*opr2;中断;
案例“/”:ergebnis=opr1/opr2;中断;
案例“q”:退出(0);
默认值:coutChange
到
并在计算
函数中添加float ergebnis;
。同时将return1;
更改为return1;
。您还需要进行一些检查以避免被零除。您还使用了cout
而不是default
案例中的printf
。您需要包括
才能使用退出(0);
- 您需要返回和1之间的空格,如下所示: 返回1
- 需要在没有任何参数类型信息的情况下调用方法,如: ergebnis=计算(optr,opr1,opr2)
- 在计算器函数中,您将其用作变量ergebnis,但未对其进行定义,因此应如下所示对其进行定义: float ergebnis=0
- 您使用的是c,所以请删除cout并使用printf对其进行更改
- 根据退出函数的错误,您需要包括stdlib.h,如下所示 #包括
#include <stdio.h>
#include <stdlib.h>
float calculate(char optr, float opr1, float opr2) {
float ergebnis = 0;
switch(optr) {
case '+': ergebnis = opr1+opr2; break;
case '-': ergebnis = opr1-opr2; break;
case '*': ergebnis = opr1*opr2; break;
case '/': ergebnis = opr1/opr2; break;
case 'q': exit(0);
default: printf("unbekanntes Rechenzeichen...\n"); return 1;
}
return ergebnis;
}
int main(void) {
char optr;
float opr1, opr2, ergebnis;
//Eingabe
printf("\nEingabe Operator(+,-,*,/,q)"); scanf("%c", &optr);
printf("\nEingabe Zahl1"); scanf("%f", &opr1);
printf("\nEingabe Zahl2"); scanf("%f", &opr2);
//Verarbeitung
ergebnis = calculate(optr, opr1, opr2);//Ausgabe
printf("\nErgebnis: %f\n", ergebnis);
return 0;
}
#包括
#包括
浮点计算(字符optr、浮点opr1、浮点opr2){
float ergebnis=0;
开关(optr){
案例“+”:ergebnis=opr1+opr2;中断;
案例'-':ergebnis=opr1-opr2;中断;
案例“*”:ergebnis=opr1*opr2;中断;
案例“/”:ergebnis=opr1/opr2;中断;
案例“q”:退出(0);
默认值:printf(“unbekannetes Rechenzeichen…\n”);返回1;
}
返回ergebnis;
}
内部主(空){
char optr;
浮动opr1、opr2、ergebnis;
//艾因加贝
printf(“\nEingabe运算符(+,-,*,/,q)”;scanf(“%c”,&optr);
printf(“\nEingabe Zahl1”);scanf(“%f”、&opr1);
printf(“\nEingabe Zahl2”);scanf(“%f”、&opr2);
//韦拉尔贝通
ergebnis=calculate(optr,opr1,opr2);//Ausgabe
printf(“\nErgebnis:%f\n”,ergebnis);
返回0;
}
这应该适合你。你做错了几件事:
在库exit()
stdlib.h
- 你的回报太多了
- 你忘了说英语了
#include <stdio.h>
#include <stdlib.h>
float calculate(char optr, float opr1, float opr2) {
float ergebnis;
switch(optr) {
case '+': ergebnis = opr1+opr2; break;
case '-': ergebnis = opr1-opr2; break;
case '*': ergebnis = opr1*opr2; break;
case '/': ergebnis = opr1/opr2; break;
case 'q': exit(0);
default: printf("unbekanntes Rechenzeichen...\n");
}
return ergebnis;
}
int main(void) {
char optr;
float opr1, opr2, ergebnis;
//Eingabe
printf("\nEingabe Operator(+,-,*,/,q)"); scanf("%c", &optr);
printf("\nEingabe Zahl1"); scanf("%f", &opr1);
printf("\nEingabe Zahl2"); scanf("%f", &opr2);
//Verarbeitung
ergebnis = calculate(optr, opr1, opr2);//Ausgabe
printf("\nErgebnis: %f\n", ergebnis);
return 0;
}
#包括
#包括
浮点计算(字符optr、浮点opr1、浮点opr2){
漂浮麦角;
开关(optr){
案例“+”:ergebnis=opr1+opr2;中断;
案例'-':ergebnis=opr1-opr2;中断;
案例“*”:ergebnis=opr1*opr2;中断;
案例“/”:ergebnis=opr1/opr2;中断;
案例“q”:退出(0);
默认值:printf(“unbekannetes Rechenzeichen…\n”);
}
返回ergebnis;
}
内部主(空){
char optr;
浮动opr1、opr2、ergebnis;
//艾因加贝
printf(“\nEingabe运算符(+,-,*,/,q)”;scanf(“%c”,&optr);
printf(“\nEingabe Zahl1”);scanf(“%f”、&opr1);
printf(“\nEingabe Zahl2”);scanf(“%f”、&opr2);
//韦拉尔贝通
ergebnis=calculate(optr,opr1,opr2);//Ausgabe
printf(“\nErgebnis:%f\n”,ergebnis);
返回0;
}
编辑:
另外,我建议您从德语到德语;D使用英语单词编程!(例如结果、输入、输出等),这样更多的人可以理解您的代码并更快地理解它
ergebnis = calculate(char optr, float opr1, float opr2);//Ausgabe
float Calculate(char optr, float opr1, float opr2)
{
switch (optr)
{
case '+': return opr1 + opr2;
case '-': return opr1 - opr2;
case '*': return opr1 * opr2;
case '/': return opr1 / opr2;
case 'q': return 0f;
default: return 0f;
}
}
“Calculate函数只能返回浮点值”如果问题与编译错误有关,请首先提供这些错误的输出 它可能来自代码的这一部分:
float calculate(char optr, float opr1, float opr2) {
switch(optr) {
case '+': ergebnis = opr1+opr2; break;
case '-': ergebnis = opr1-opr2; break;
case '*': ergebnis = opr1*opr2; break;
case '/': ergebnis = opr1/opr2; break;
case 'q': exit(0);
default: cout <<"unbekanntes Rechenzeichen...\n"; return1;
}
return ergebnis;
}
浮点计算(char optr、float opr1、float opr2){
开关(optr){
案例“+”:ergebnis=opr1+opr2;中断;
案例'-':ergebnis=opr1-opr2;中断;
案例“*”:ergebnis=opr1*opr2;中断;
案例“/”:ergebnis=opr1/opr2;中断;
案例“q”:退出(0);
默认情况:你必须改变的第一件事是把错误信息添加到你的问题中。当你添加错误时,试着理解它们,并解释错误信息中你到底不理解什么。注意,代码> CUT//COD>在C中是不起作用的。这是C++的。好答案-不知道为什么它会被否决,但我会很高兴。给它一个放弃投票来取消它!@PaulR谢谢!我很荣幸听到你这样说:D@PaulR添加了一个有利于OP的特别提示!
#include <stdio.h>
#include <stdlib.h>
float calculate(char optr, float opr1, float opr2) {
float ergebnis;
switch(optr) {
case '+': ergebnis = opr1+opr2; break;
case '-': ergebnis = opr1-opr2; break;
case '*': ergebnis = opr1*opr2; break;
case '/': ergebnis = opr1/opr2; break;
case 'q': exit(0);
default: printf("unbekanntes Rechenzeichen...\n");
}
return ergebnis;
}
int main(void) {
char optr;
float opr1, opr2, ergebnis;
//Eingabe
printf("\nEingabe Operator(+,-,*,/,q)"); scanf("%c", &optr);
printf("\nEingabe Zahl1"); scanf("%f", &opr1);
printf("\nEingabe Zahl2"); scanf("%f", &opr2);
//Verarbeitung
ergebnis = calculate(optr, opr1, opr2);//Ausgabe
printf("\nErgebnis: %f\n", ergebnis);
return 0;
}
ergebnis = calculate(char optr, float opr1, float opr2);//Ausgabe
float Calculate(char optr, float opr1, float opr2)
{
switch (optr)
{
case '+': return opr1 + opr2;
case '-': return opr1 - opr2;
case '*': return opr1 * opr2;
case '/': return opr1 / opr2;
case 'q': return 0f;
default: return 0f;
}
}
float calculate(char optr, float opr1, float opr2) {
switch(optr) {
case '+': ergebnis = opr1+opr2; break;
case '-': ergebnis = opr1-opr2; break;
case '*': ergebnis = opr1*opr2; break;
case '/': ergebnis = opr1/opr2; break;
case 'q': exit(0);
default: cout <<"unbekanntes Rechenzeichen...\n"; return1;
}
return ergebnis;
}