使用C中的函数将两个数相乘

时间:2017-05-11 23:48:05

标签: c function multiplying

这是我的计划,我收到的语法错误是我不明白的。 这是我的主要接受我的功能数据:

int main() //main program
{
    float num1, num2, total; 
    printf("Enter first number:  ");
    scanf("%f", &num1);
    printf("Enter Second number:  ");
    scanf("%f", & num2);
    total = multiNumbers(num1, num2);
    printf("sum is %2.f", total);   
    return 0;
}

int multiNumbers(int num1, int num2) {
    int sum;
    sum = num1 * num2;
    return sum;
}

以下是编译错误:

In function 'int main()':
[Error] 'printf' was not declared in this scope
[Error] 'scanf' was not declared in this scope
[Error] 'multiNumbers' was not declared in this scope

4 个答案:

答案 0 :(得分:3)

  

[错误]'printf'未在此范围内声明

     

[错误]'scanf'未在此范围内声明

在代码中添加stdio库

 int multiNumbers(int num1, int num2);
  

[错误]'multiNumbers'未在此范围内声明

在主要功能

之前添加声明
#include <stdio.h>
int multiNumbers(int num1, int num2);
int main() //main program
{
    float num1, num2, total; 
    printf("Enter first number:  ");
    scanf("%f", &num1);
    printf("Enter Second number:  ");
    scanf("%f", & num2);
    total = multiNumbers(num1, num2);
    printf("sum is %2.f", total);   
    return 0;
}
int multiNumbers(int num1, int num2) {
    int sum;
    sum = num1 * num2;
    return sum;
}

代码段:

{{1}}

答案 1 :(得分:2)

  

[错误]&#39; printf&#39;未在此范围内声明   [错误]&#39; scanf&#39;未在此范围内声明

printfscanfstdio.h中声明,因此您需要先包含此文件:

#include <stdio.h>
  

[错误]&#39; multiNumbers&#39;未在此范围内声明

如果在主函数上方未声明或定义此函数,则必须至少添加如上所示的声明:

int multiNumbers(int num1, int num2);

(只是这一行)

答案 2 :(得分:1)

在调用之前,您必须至少声明该函数。函数定义也可以作为声明,因此最简单的方法是在multiNumbers之前移动main的正文。

修改

int multiNumbers(int num1, int num2) {
  int sum;
  sum = num1 * num2;
  return sum;
}

int main() //main program
{
    float num1, num2, total; 
    printf("Enter first number:  ");
    scanf("%f", &num1);
    printf("Enter Second number:  ");
    scanf("%f", & num2);
    total = multiNumbers(num1, num2);
    printf("sum is %2.f", total);   
    return 0;
}

编译器抱怨的一个问题 - 您的类型不匹配。您已声明multiNumbers获取int个参数并返回int值,但您传递了float个值并将结果分配给float

那不行。

如果您希望multiNumbers使用float值,则需要将num1num2sum的类型更改为{{ 1}}(虽然老实说,我建议使用float代替double)。

答案 3 :(得分:1)

你必须先

#include <stdio.h>

并且你还必须在main()之前放置函数原型。

#include <stdio.h> // You forgot this

int multiNumbers(int num1, int num2); // This is the function's prototype

int main() //main program
{
    float num1, num2, total; 
    printf("Enter first number:  ");
    scanf("%f", &num1);
    printf("Enter Second number:  ");
    scanf("%f", &num2);
    total = multiNumbers(num1, num2);
    printf("sum is %2.f", total);   
    return 0;
}

int multiNumbers(int num1, int num2) {
    int sum;
    sum = num1 * num2;
    return sum;
}