向c语言高手请教个问题

[复制链接]
查看11 | 回复2 | 2009-9-22 09:39:40 | 显示全部楼层 |阅读模式
int febc(int n)要有返回值void febc(int n) 试试
回复

使用道具 举报

千问 | 2009-9-22 09:39:40 | 显示全部楼层
错误别人已经有指出,我就给你讲一下怎么用好了函数了得类型,有的是int,有的是float,有的是void.....到底该用什么呢?像你这个int febc(int n) ,你现在这个肯定是错的,为什么呢?你既然定义了一个int类型的febc,那么说明这个febc是个int类型了,是int类型就要有值,它的值是什么呢?它的值由return来决定,return 1它就是1,你定义了int却没有返回值,这是你的一个错误。你这里并不要用到febc的返回值,所以可以定义为void 函数的类型和*()里的没关系,你这里int febc(int n),这里int n与外面的int没有关系,这里的int只是说明你用这个函数的时候()里的值要是个int类型,否则有可能出错,为什么不说一定?你这里写febc(2.5)也是不会错的,2.5会自动强制转化为int。就相当于febc(20
回复

使用道具 举报

千问 | 2009-9-22 09:39:40 | 显示全部楼层
#include"stdio.h"void febc(int); main() { int n; scanf("%d",&n); febc(n); } void febc(int n) { int a[3],i; a[0]=a[1]=a[2]=1; for(i=3;i<=n;i++) a[i%3]=a[(i+1)%3]+a[(i+2)%3]; /*实现 Febc(i)=Febc(i-1)+Febc(i-2)*/ printf("\n%d\n",a[n%3]); }你如果编译的时候就和你上面写个是一摸一样的话,你没有把头文件stdio.h包含进去。这个是你调用输入输出函数的前提。其他的我运行了一下没有什么问题啊。 至于double输入的时候就是scanf("%lf",&a);float一样的scanf("%f",&a);输出的话格式控制(%f,%d,%lf等)是一样的。不晓得你说的是不是这个意思哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行