存储为单独的变量C编程

时间:2016-02-01 02:53:33

标签: c function-prototypes

您好我试图将两个get_input方法存储为单独的变量,但我不知道如何。另外我在main方法中的get_input一直说它隐含区别请求帮助

#include <stdio.h>

double main()
{
   get_input();
   get_input();
}

double get_input(void)
{
   double x1;
   printf("Enter any number: ");
   scanf("%lf", &x1);
   return x1;
}

double get_next(double x2,double x1)
{
   double total;
   total=(((x2)/2)+3(x1));
   return total;
}

void print_result()
{
   return null;
}

3 个答案:

答案 0 :(得分:1)

您的编译器抱怨它不了解您的函数get_input。编译是从上到下完成的,所以当它到达时:

double main()
{
    get_input();

您的编译器不知道get_input是什么。您需要在main之前声明(可选地定义)您的函数。

double get_input();
double main()
{
    get_input();

这称为函数原型,即使get_input尚未定义,编译器至少知道它存在并可以继续编译。

您可能希望将<{1}}的返回值分配给某个值以供日后使用:

get_input

答案 1 :(得分:0)

如果您不熟悉C / C ++,很少有基本的东西,您可以重写您的程序,如下所示。

#include <stdio.h>

//Function declarations
double get_input(void);
double get_next(double x2,double x1);
void print_result();

int main( int argc, char *argv[])
{
   double d1, d2;
   d1 = get_input();
   d2 = get_input();
   return 0;
}

double get_input(void)
{
   double x1;
   printf("Enter any number: ");
   scanf("%lf", &x1);
   return x1;
}

double get_next(double x2,double x1)
{
   double total;
   total=(((x2)/2)+3(x1));
   return total;
}

void print_result()
{
   return;
}

答案 2 :(得分:-1)

实际上隐含定义的任何机会?如果是这样,我怀疑问题是你在定义它们之前调用你的函数。要解决此问题,您有两个选择:

1.reorder - 对于此解决方案,您需要确保在创建之前不使用任何函数。在您的情况下,问题是在get_input()中使用main

#include <stdio.h>

double get_input(void)
{
    double x1;
    printf("Enter any number: ");
    scanf("%lf", &x1);
    return x1;
}
double get_next(double x2,double x1)
{
    double total;
    total=(((x2)/2)+3(x1));
    return total;
}
void print_result(void)
{
    return null;
}
double main(void)//move main to the bottom
{
    get_input();
    get_input();
}

2。prototypes

#include <stdio.h>
double_getinput(void);
double get_next(double x2, double x1);//double get_next(double, double); also works, I just think this looks better
void print_result();

double main(void)
{
    get_input();
    get_input();
}
double get_input(void)
{
    double x1;
    printf("Enter any number: ");
    scanf("%lf", &x1);
    return x1;
}
double get_next(double x2,double x1)
{
    double total;
    total=(((x2)/2)+3(x1));
    return total;
}
void print_result(void)
{
    return null;
}

此外,main应始终如下所示:

1

!隐式虚假参数〜(显然无效)

int main(){//
    ...
    return 0;
}

明确无效的参数(有点不太常见,但我会建议你这样做)

int main(void){
    ...
    return 0;
}

显式命令行参数(第二常见)

int main(int argc, char *argv){
    ...
    return 0;
}

注意: int对于所有这些表单也是可选的。例如( HIGHLY 不鼓励此选项)

main(void){
    ...
    return 0;
}

修改 main应格式化为Regarding 'main(int argc, char *argv[])'

的原因