我写了下面的代码块我在函数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);
}
感谢您的帮助,我很感激
答案 0 :(得分:1)
功能声明为void find_brackets(char str[], int len);
,来自main()
的来电者为find_brackets(str);
,这是错误的。第二个论坛在哪里。
函数calculation()
在声明和调用方式上也有所不同。在函数形式参数中保持匹配,然后传递被调用者实际参数。
答案 1 :(得分:0)
void find_brackets(str[],len)
void calculation(str1[],len)
请在功能定义时指定len
和str[]
的数据类型。
另外
find_brackets(str);
calculation(str1);
传递一个参数,但你声明了两个也是错误的。