注册 登录
编程论坛 C++教室

刚开课C++,做一个题目遇到了一点问题,help!help~

log4277 发布于 2013-10-28 12:18, 710 次点击
#include<iostream.h>
int fun(int n);
{
    if (n<=1) return 1;
    else if (n>1) return n*fun(n-1);
}
void main(int n)
{
    int a,int b,int c;
    cout<<"输入a,b,c三个数";
    cin>>a>>b>>c;
    cout<<"a!+b!+c!="<<fun(a)+fun(b)+fun(c)<<endl;
}
我这段程序为什么编译会有错误呢,想不通诶!
是这个错误
missing function header (old-style formal list?)
求各位帮帮忙
11 回复
#2
peach54602013-10-28 12:24
void main(int n)
#3
blueskiner2013-10-28 12:40
主函数参数定义应该遵循标准,不知道标准?那上网搜索啊
#4
i802862013-10-28 12:49
C++开课讲的第一个程序是很经典的,你如果看明白了,你就会知道你错在哪
#5
左手拉一只猫2013-10-28 16:32
#include<iostream>
using        namespace    std;
int fun(int n)
{
    if (n<=1) return 1;
    else if (n>1) return n*fun(n-1);
}
int main()
{
    int a,b,c;
    cout<<"输入a,b,c三个数:";
    cin>>a>>b>>c;
    cout<<"a!+b!+c!="<<fun(a)+fun(b)+fun(c)<<endl;
    return    0;
}

写的递归求阶乘函数有warning,貌似未考虑n<0的情况,主函数和里面声明的变量写的不对。。。。
#6
IT男year2013-10-28 17:42
int fun(int n);----->这里怎么会有冒号呀!又不是函数声明.........
 {      

[ 本帖最后由 IT男year 于 2013-10-28 17:43 编辑 ]
#7
wangyl05142013-10-28 20:11
函数实现后面的分号
#8
期待追忆2013-10-29 09:37
我调试了程序,和6楼的观点一样。调用子函数时int fun(int n);不能用分号。只有申明函数时才用分号。
还有主函数mian()定义变量的时候最好是这样写int a,b,c;
程序如下:
#include<iostream.h>
 int fun(int n)
 {
     if (n<=1) return 1;
     else if (n>1) return n*fun(n-1);
 }
 void main(int n)
 {
     int a,b,c;
     cout<<"输入a,b,c三个数";
     cin>>a>>b>>c;
     cout<<"a!+b!+c!="<<fun(a)+fun(b)+fun(c)<<endl;
 }
顺便问一句楼主你是用什么软件编C++的?
#9
log42772013-10-29 15:04
回复 8楼 期待追忆
我是用vc6.0的,因为是刚开的c++课程,没学多久,学校都用vc
#10
log42772013-10-29 15:05
回复 6楼 IT男year
哎,菜鸟,不太会弄,虽然这个比较基本。没下次了,嘿嘿
#11
wu27826418032013-10-31 12:07
回复 楼主 log4277
第二横多了;
#12
xiaodu0002013-10-31 15:32
#include<iostream>
using namespace std;
int  fun(int n)
{
    if (n<=1) return 1;
    else if (n>1) return n*fun(n-1);
}
int main (int n)
{
    int a,b,c;
    cout<<"输入a,b,c三个数";
    cin>>a>>b>>c;
    cout<<"a!+b!+c!="<<fun(a)+fun(b)+fun(c)<<endl;
    return 0;
}
帮楼主改完了,以后不要用iostream。h好不,另外引入参数不是你那么引的
1