您好我试图将两个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;
}
答案 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();
}
#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[])'