错误:使用函数进行算术运算的C程序

时间:2014-05-21 19:48:32

标签: c

我正在尝试编写一个小型的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程序编译器。但同样的错误。

3 个答案:

答案 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使用不同的名称。