gpt4 book ai didi

其运算选择中带有输入字符串的计算器

转载 作者:行者123 更新时间:2023-11-30 20:59:33 25 4
gpt4 key购买 nike

如何在运算选择中使用输入字符串制作计算器?,我已经尝试过,但它不起作用。我的讲座已分配:)

printf("choose:");
scanf("%s", (char *) &choose);

switch(choose)
{
case 'tambah':
printf("Masukkan Nilai 1:");
scanf("%d", &x);
printf("Masukkan Nilai 2:");
scanf("%d", &y);
hasil = tambah(x,y);
printf("%d + %d = %d", x, y, hasil);
break;

case 'kurang':
printf("Masukkan Nilai 1:");
scanf("%d", &x);
printf("Masukkan Nilai 2:");
scanf("%d", &y);
hasil = kurang(x,y);
printf("%d - %d = %d", x, y, hasil);
break;

最佳答案

直接在 switch() 语句中使用字符串(考虑到您使用字符串,因为在您的示例中您只是将几个字符放入文字中,这应该是一个 char)在 C 中是一个糟糕的主意。我建议枚举可能的选项并将它们放入 strcmp 中,以便相应地匹配您的操作和分支。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

enum {
tambah = 0,
kurang = 1
};

int decodeLineType(const char* strAction)
{
int i = 0;

char acAllowedCodes[2][7] = {"tambah","kurang"};

for(; i < 2; ++i)
{
if (strncmp(strAction, acAllowedCodes[i], strlen(acAllowedCodes[i])) == 0)
{
return i;
}
}

return(-1);
}

int main()
{
char choose[30] = {0};
scanf("%s", choose);
switch(decodeLineType(choose))
{
case tambah :
/* some logic here*/
break;
case kurang :
/* some logic here*/
break;
default:
break;
}
return(0);
}

题外话:当您要在国际论坛中寻求指导时,请考虑对程序中的所有标签和变量名称使用英语。

关于其运算选择中带有输入字符串的计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47013389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com