【问题标题】:Error : C Program for Arithmetic Operations using Functions错误:使用函数进行算术运算的 C 程序
【发布时间】:2014-05-21 19:48:32
【问题描述】:

我正在尝试编写一个小型 c 程序来使用函数执行算术运算,但遇到了一些错误。

请有人看一下这段代码并进行验证!

错误:

--------------------配置:mingw5 - CUI 调试,生成器类型: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)

代码

#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 程序编译器。但同样的错误。

【问题讨论】:

  • 请不要不断更新问题,因为人们会在答案中解决您的错误。如果需要,请发布新问题。

标签: c


【解决方案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(){
...
...
}

【讨论】:

  • 问题已更新.. 将div 更改为divs.. 但仍有新错误:O
  • 当我更新时它显示15: error: 'ans' was not declared in this scope
  • 非常感谢兄弟 :) 你真的为我节省了很多时间! :) +1!
【解决方案2】:

div() 是标准库的一部分,在stdlib.h 中定义,您将其包含在程序中。您必须为您的函数使用不同的名称,例如 my_div

您的代码中还有一些错误 - 最重要的是,标准 C 没有嵌套函数。

【讨论】:

  • 谢谢.. 但我将div 更改为divs.. 仍然出现新错误:( 问题已更新
  • @user3662340:注意这个答案的第二段。
【解决方案3】:

div 已经作为标准 C 函数存在,并返回不同的类型。见here

您需要为您的 div 使用不同的名称。

【讨论】:

  • 谢谢.. 但我将div 更改为divs.. 仍然有新错误:( 问题已更新
  • div_t 是 div 返回的类型,所以你在某处使用它。你确定你发布了你正在编译的确切代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
  • 2011-02-23
  • 1970-01-01
相关资源
最近更新 更多