gpt4 book ai didi

C代码。为什么我的代码没有在 main 中返回正确的值,而是使用函数打印正确的值?

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

我的目标是打印并存储 num 和 res 的字符串值,并将它们返回以使用 SetNum 和 SetRes 函数在 main 中使用,并在 main 函数中的后续代码中的算术运算中使用它们。以下代码产生

num to 34 res to 4.80873 4.00000

其中 4.0000 应该是 res 的值。我想打印它以了解 SetRes 是否实际上返回了正确的浮点值,但它没有。我该如何更正此代码?

注意:ObjectInt 检查 token 是否为整数,ObjectFloat 检查 token 是否为 Float,并在文件中扫描对象。

int setNum(const char* object)
{
if (objectInt(object)) {
int number, num;
number = atoi(object);
num = number;
printf("num to %d\n", num);
}
else if (objectFloat(object)) {
float numberf, numf;
numberf = atof(object);
numf = numberf;
printf("num to %lf\n", numf);
}
}

int setRes(const char* object)
{
if (objectInt(object)) {
int number, res;
number = atoi(object);
res = number;
printf("res to %d\n", res);
}
else if (objectFloat(object)) {
float resf;
resf = atof(object);
printf("res to %lf\n", resf);
return resf;
}
}

int main()
{
char object[100];
int number, result;
float numf, resf;
int flag = 0;
//print number and res if int
if (objectInt(object)) {

if (flag == 1) setNum(object);
else setRes(object);
}
//print number and res if float
else if (objectFloat(object)) {

if (flag == 1) setNum(object);
else resf = setRes(object);
printf("%lf", resf);
}

else if (strcmp(object, IsitNum) == 0) {
flag = 1;
}
else if (strcmp(object, IsitRes) == 0) {
flag = 2;
}
}

最佳答案

如果 if 条件为 TRUTHY,您的 setRes() 函数不会返回值。

关于C代码。为什么我的代码没有在 main 中返回正确的值,而是使用函数打印正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53469444/

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