我正在尝试编写一个小型的c程序来使用函数执行算术运算,但是遇到了一些错误。
有人可以看一下这段代码并验证它,
错误:
--------------------配置:mingw5 - CUI Debug,Builder类型:MinGW ---------------- ----
Checking file dependency...
50: error: cannot convert `div_t' to `int' in assignment
64: error: a function-definition is not allowed here before '{' token
69: error: a function-definition is not allowed here before '{' token
74: error: a function-definition is not allowed here before '{' token
79: error: a function-definition is not allowed here before '{' token
84: error: a function-definition is not allowed here before '{' token
90:2: warning: no newline at end of file
Complete Make Untitled25: 6 error(s), 1 warning(s)
CODE
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
int add(int, int);
int sub(int, int);
int mul(int, int);
int divs(int, int);
int print(int);
int main(){
int ans,a,b,n;
printf("******************");
printf("\n1 ADD");
printf("\n2 SUB");
printf("\n3 MUL");
printf("\n4 DIV");
printf("\n5 EXT");
printf("\n******************");
printf("\n\n\nEnter Your Option(1-5):");
scanf("%d",&n);
// n=1;
printf("\nEnter Values a,b:");
scanf("%d%d",&a,&b);
// a=1;b=2;
if(n==4&&b==0){
printf("\n\n Value of `B` Can't Be `0` for Division\n\n");
exit(EXIT_SUCCESS);
}
if(n>0&&n<6){
if(n==1){
ans=add(a,b);
// main();
}
if(n==2){
ans=sub(a,b);
// main();
}
if(n==3){
ans=mul(a,b);
// main();
}
if(n==4){
ans=divs(a,b);
// main();
}
if(n==5){
exit(EXIT_SUCCESS);
}
print(ans);
}
else {
printf("\nWorng Entry!\n ");
exit(EXIT_SUCCESS);
}
int add(int a,int b){
ans=a+b;
return(ans);
}
int sub(int a,int b){
ans=a-b;
return(ans);
}
int mul(int a,int b){
ans=a*b;
return(ans);
}
int divs(int a,int b){
ans=a/b;
return(ans);
}
int print(int ans){
printf("\n\n Answer = %d",ans);
return;
}
}
我正在使用C-Free Professional编写和编译C程序。我也尝试过在线C程序编译器。但同样的错误。
答案 0 :(得分:1)
你包括:
#include<stdlib.h>
这包含一个函数div()
,它具有与div
函数不同的返回类型,因此会出现此错误。
要解决此问题,您必须重命名div
函数或不使用此包含文件。
有关内置div
的更多信息,请参阅:http://www.tutorialspoint.com/c_standard_library/c_function_div.htm
此外,您需要完成所有功能并将其移至main
之外。现在你有以下内容:
int main(){
...
int add(int a,int b){
ans=a+b;
return(ans);
}
...
}
需要更改为
int add(int a,int b){
return( a+b); //note there is no "ans" now
}
int main(){
...
...
}
答案 1 :(得分:1)
div()
是标准库的一部分,在stdlib.h
中定义,您在程序中包含该库。您必须为您的函数使用其他名称,例如my_div
。
您的代码中还有一些错误 - 最重要的是,标准C没有嵌套函数。
答案 2 :(得分:0)
div已作为标准C函数存在,并返回不同的类型。见here
您需要为div使用不同的名称。