gpt4 book ai didi

c - 为什么会出现错误呢?

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

我编写了以下代码块,我在函数 find_brackets 和计算中一直出现错误。有人可以向我解释如何解决它。并且这两个功能将一起发挥作用

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

void find_brackets(char str[], int len);
void calculation(char str1);

int main(void) {
int len;
char str1[99];
char str[99]; // (4/2)
printf("Enter a math exercises: \n");
gets(str);
len = strlen(str);

find_brackets(str);
calculation(str1);
}

void find_brackets(str[], len) {
char str1[len];
int i, j;
for(i = 0; i < len; i++) {
if(str[i] == '(') {
i++;
while(str[i] != ')') {
str1[j] = str[i];
i++;
j++;
}
}
}
}

void calculation(str1[], len) {
char str[len];
char strp[len];
char str2[len];
char str3[len];
char *rev;
int i, k, j = 0, aPos, zPos;
int sum1, sum2;
float sum;

strcpy (str, str1);
strcpy (strp, str1);

aPos = zPos = -1;

for(i = 0; i < len; i++) {
if(str[i] == '+') {
aPos = i;
}
else if(str[i] == '/') {
zPos = i;
break;
}
}
if(aPos != -1 && zPos != -1) {
for(k = 0, i = zPos-1; i > aPos; --i, ++k) {
str2[k] = str[i];
}
}

rev = strrev(str2);
printf("%s\n", rev);

for(i = 0; i < len; i++) {
if(strp[i] == '/') {
while(strp[i+1] != '+') {
str3[j++] = strp[++i];
}
}
}
printf("%s\n", str2);
sum1 = atoi(str2);
sum2 = atoi(str3);
sum = sum1 / sum2;
printf("%.0f\n", sum);
}

感谢您的帮助,我很感激

最佳答案

函数声明为void find_brackets(char str[], int len);以及来自 main() 的调用者是 find_brackets(str);这是错误的。第二个参数在哪里。

还有功能calculation()声明和调用方式有所不同。保持函数形式参数与传递的被调用者实际参数的匹配。

关于c - 为什么会出现错误呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21827543/

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