VC++定义函数问题

大家好,我在看金文的2级C等级考试教程,里面用TC教学我现在用的是VC教程里说定义一个函数,除了返回值类型为int或者char的除外,其他的类型的函数一定要放在调用函数之... 大家好,我在看金文的2级C等级考试教程,里面用TC教学
我现在用的是VC

教程里说定义一个函数,除了返回值类型为int或者char的除外,其他的类型的函数一定要放在调用函数之前。
恩,我现在写了个:
#include "stdio.h"
main()
{int a;
scanf("%d",&a);
if(isprime(a))
printf("Yes\n");
else
printf("no\n");
}

int isprime(int x)
{int i;
for(i=2;i<=x;i++)
{
if(x%i==0)break;
}
if(i>=x)
return 1;
else
return 0;
}
输入一个数,判断是否是素数。
因为是int类型,视频里说可以放在调用函数之后,所以我把他放在main()后面去了,而且在TC里编译通过了。
但在VC里却不行?为什么??
谢谢·~
展开
 我来答
何处淬吴钩
2008-12-27 · TA获得超过5045个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2418万
展开全部
没有什么为什么的问题,不同编译器规则不同而已。vc是针对c++的,一些c中不太规范的表示在vc中是要报错的。你说的这个问题,可以把函数的定义放在主函数之前,或者在主函数之前声明,后面定义。另外,主函数也需指定类型,不需返回值则加void,因为c++不支持默认的函数返回类型。
mypcluna
2008-12-27 · TA获得超过2255个赞
知道大有可为答主
回答量:1273
采纳率:0%
帮助的人:1787万
展开全部
TC2.0是1988年的,VC6是1998年的,十年啊……

我给你简单说下任何编译器都不会报错的程序结构,注意,这只是建议,但如果你遵循的话,你肯定不会遇上麻烦(至少我没遇上)。

将main()中用到的所有函数,在main()之前进行声明,main()之后进行实现。不管返回类型是什么,都是如此。保证不会有任何编译器找你麻烦。

在你的示例代码中,就是在main()之前,与include指令之后,插入这么一句:
int isprime(int x); // x 可有可无
就可以通过任何编译器的检查。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
诸葛古城栽花8287
2008-12-27 · TA获得超过179个赞
知道答主
回答量:97
采纳率:0%
帮助的人:82万
展开全部
我用VC++ 6.0编译通过并正确运行。不过编译完之后提示一个警告,说isprime没有定义。

一般函数和变量在使用之前是要定义的,这个是一个好习惯,即使编译通过也应该遵循。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
magic_knife
2008-12-27 · TA获得超过848个赞
知道小有建树答主
回答量:2882
采纳率:0%
帮助的人:987万
展开全部
你要前向声明函数呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Cupxl
2008-12-27 · 超过21用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:71.3万
展开全部
建议看看visual c++编程规范 这样你就能明白了

在早期的vc里面如果函数没有返回值时 是默认为int
但是后来标准修改好后就不再支持这个功能了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
76218851
2008-12-27 · TA获得超过162个赞
知道答主
回答量:130
采纳率:0%
帮助的人:99.2万
展开全部
看不出来程序有什么问题啊~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式