黑马程序员技术交流社区
标题:
求教,谁能帮我改正这代码中的错误?
[打印本页]
作者:
claud0623
时间:
2014-7-10 23:16
标题:
求教,谁能帮我改正这代码中的错误?
本帖最后由 claud0623 于 2014-7-13 15:36 编辑
刚敲了一个关于阶乘求和的代码,编译时出现一个错误,怎么检查都不知道错误出现在哪里,还望大神前来相救啊,附上源码:
/*
题目:
编写一个函数int pieAdd(int n),计算1!+2!+3!++n!的值(n>=1)。
比如pieAdd(3)的返回值是1! + 2! + 3! = 1 + 1*2 + 1*2*3 = 9
*/
#include <stdio.h>
int pieAdd(int n);
int main
{
int n=0;
while(n<=0)
{
printf("请输入一个正整数:\n");
scanf("%d",&n);
}
int result=pieAdd(n);
printf("总和为:%d",result);
return 0;
}
int pieAdd(int n)
{
int sum=0;
for(int i=1;i<=n;i++)//多少个阶乘
{
int temp=1;
for(int j=1;j<=i;j++)//每行多少个数相乘
{
temp*=j;//每个阶乘的值
}
sum+=temp;//阶乘总和
}
return sum;
}
复制代码
编译时出现的错误如下:
阶乘之和.c:9: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
我看了一下,第九行只有一个大括号,不知错误在哪里。
作者:
huangqiwa
时间:
2014-7-11 00:00
楼主,我郁闷哦!你main函数没有写小括号!main()
作者:
且行且惜
时间:
2014-7-11 00:07
每个方法都有参数的,main函数也不例外的,#include <stdio.h> int pieAdd(int n); int main() { 这样改,加小括号就行啦!!!
作者:
骑着飞机去看海
时间:
2014-7-11 00:53
从写了一个,你看看
#include "stdafx.h"
#include <stdio.h>
int getmul(int n){//递归求阶乘
int sum;
int temp = 1;
if(n<=0){
printf("输入的数据错误,不能小于0!\n");
return -1;
}else{
if(n ==1 ){ sum = 1; return sum;}
else {
sum =n * getmul(n-1);
return sum;
}
}
}
int getSum(int n){//递归求和
int sum;
if(n==0){
sum =0;
}else{
sum = getmul(n) + getSum(n-1);
}
return sum;
}
void print(int n){//打印
for(int i=1; i <=n; i ++){
if(i==n) printf("%d!=",i);
else printf("%d!+",i);
}
}
int main(int argc, char* argv[])
{
int a = 10;//此为求1到10的阶乘只和
print(a);
printf("%d\n",getSum(a));//调用
return 0;
}
复制代码
作者:
claud0623
时间:
2014-7-13 15:34
huangqiwa 发表于 2014-7-11 00:00
楼主,我郁闷哦!你main函数没有写小括号!main()
谢谢,没想到犯了这么个低级错误。
作者:
الغيوم_ا
时间:
2014-7-13 22:45
第九行找不到的话,就往上面找,那就是main后面缺少()了。
作者:
火拳
时间:
2014-7-20 11:01
看了你的代码我心里的包袱放下了,原来,还有比我马虎的人,我好激动,可能是因为每次打开项目,main方法都是自动生成的,所以呢,不会写或者是忘记写,可以理解,但是,以后最好不要犯这样的错了,掉面子啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2