gpt4 book ai didi

c - 值不分配给变量? C计算器

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:15 24 4
gpt4 key购买 nike

我正在尝试用 C 语言创建一个简单的计算器。我目前只有一个问题,那就是当我尝试将我的运算符值分配给输入的值时,存储在一个字符数组中,它分配它,但是当我退出for循环不再赋值。我试过使用 malloc,但这不起作用。提前致谢

int calculator()
{
int exit;
exit = 1;
while(exit == 1){

printf("Welcome to the calculator, please enter the calculation you wish to make, if you wish to exit type EXIT\n");

float num1;
float num2;
char operation;
float ans;
char string[10];
int beenhere = 0;

scanf("%s", &string);
int result = strncmp(string, "EXIT", 10);

if(result == 0){
exit = 0;
}
else{
int length = strlen(string);
int i;
for(i = 0; i <= length; i++){
if(isdigit(string[i]) != 0){
if(beenhere == 0){
num1 = (float)string[i] - '0';
beenhere = 1;
}
else{
num2 = (float)string[i] - '0';
}
}
else{
operation = string[i];
}
}
printf("num1 %f\n", num1);
printf("%c\n", operation);
printf("num2 %f\n", num2);

if(operation == '+'){
ans = num1 + num2;
}
if(operation == '-'){
ans = num1 - num2;
}
if(operation == '/'){
ans = num1 / num2;
}
if(operation == '*'){
ans = num1 * num2;
}
if(operation == '^'){
ans = (float)pow(num1,num2);
}

printf("Your answer is %f\n", ans);

}
}
return 0;

编辑:我指的是 forloop,其中的赋值是:operation = string[i];

最佳答案

您的问题出在 for 循环中:

    for(i = 0; i <= length; i++){

因为长度是 strlen(..),所以你不能得到 length,而是 length-1

你正在做一个额外的循环,它的字符为 0,将你的指令设置为该空值 - 即空字符串。

将循环更改为:

    for(i = 0; i < length; i++){

关于c - 值不分配给变量? C计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225172/

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