一个C语言的简单题目

作业要求写三个source文件,第一个是header文件,第二个是定义函数的C++文件,设函数为print()让输入一个数n,然后屏幕打印n*2,第三个为主程序文件mai... 作业要求写三个source文件,第一个是header文件,第二个是定义函数的C++文件,设函数为print()让输入一个数n,然后屏幕打印n*2,第三个为主程序文件main(),叫用户输入一个数,然后运行之前定义好的函数print()。我代码不知道哪错了。
第一个header-print.h

#ifndef print
#define print
double n;
void print(double n)
#endif
第二个函数文件 print.cpp
#include <stdio.h>
#include "print.h"
void print(n)
{
double a;
a = n*2;
printf("The result is %d\n", a);
}
第三个主文件 153.cpp

#include <stdio.h>
#include "print.h"
double i;
void main()
{
scanf("input a number %d",&i);
print(i);
}

然后出现了一对错误
print.h(5): error C2062: type 'double' unexpected
print.cpp(7): error C2143: syntax error : missing ';' before '{'
print.cpp(7): error C2447: '{' : missing function header (old-style formal list?)
1> 153.cpp
print.h(5): error C2062: type 'double' unexpected
1153.cpp(6): error C2065: 'i' : undeclared identifier
153.cpp(7): error C2065: 'i' : undeclared identifier
不知哪错了。求救啊
展开
 我来答
程序猿3号
2013-07-11 · TA获得超过1812个赞
知道小有建树答主
回答量:1029
采纳率:33%
帮助的人:834万
展开全部
//第一个header-print.h

#ifndef print
#define print
//double n;      // 这行不要,去掉
void print(double n)
#endif

//第二个函数文件 print.cpp
#include <stdio.h>
#include "print.h"
void print(double n)   // 这里要写上double
{
double a;
a = n*2;
 printf("The result is %d\n", a);
}

第三个主文件 153.cpp

#include <stdio.h>
#include "print.h"

void main()
{
double i;               // 这里double i定义到主函数中,不要定义全局变量
printf("input a number"); // 输出得用printf,你不能放到scanf中
scanf("%d",&i);
print(i);
}
追问
我照copy过去,依然不行,求解啊

主要是第二个函数文件 print.cpp 节选部分

void print(double n) // 这double系统提示expect an identifier
{ //这括号系统提示expect a declaration
追答

这个是我粗心了,只看了一眼,没放到vs中编译,一编译才发现不少问题:

//第一个header-print.h
#ifndef PRINT_H    // 你这里宏定义是为了防止多次加载,但是不能用print啊,你的函数名字就是print。。。。。。。
#define PRINT_H
//double n;      // 这行不要,去掉
void print(double n);    // 这里少了个逗号
#endif

//第二个函数文件 print.cpp
#include <stdio.h>
#include "print.h"
void print(double n)   // 这里要写上double
{
  double a;
  a = n*2;
  printf("The result is %lf\n", a);    // a是个double型数据,不能用%d输出。。。
}

//第三个主文件 153.cpp
#include <stdio.h>
#include "print.h"

void main()
{
  double i;               // 这里double i定义到主函数中,不要定义全局变量
  printf("input a number"); // 输出得用printf,你不能放到scanf中
  scanf("%lf",&i);        // 这里的错误也是%d.....
  print(i);
}

这是运行结果:

wangzeyi6
2013-07-11 · TA获得超过188个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:132万
展开全部
123456789101112131415161718192021222324252627282930//第一个header-print.h #ifndef print#define print//double n; // 这行不要,去掉void print(double n)#endif //第二个函数文件 print.cpp#include <stdio.h>#include "print.h"void print(double n) // 这里要写上double{double a;a = n*2; printf("The result is %d\n", a);} 第三个主文件 153.cpp #include <stdio.h>#include "print.h" void main(){double i; // 这里double i定义到主函数中,不要定义全局变量printf("input a number"); // 输出得用printf,你不能放到scanf中scanf("%d",&i);print(i);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
葬泪_Xoo
2013-07-11
知道答主
回答量:28
采纳率:0%
帮助的人:13.6万
展开全部
第一个文件的函数声明没加逗号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式