C++编程,求1+22+333+4444+。。。的前N项和(N<=9)。帮忙看下下面这个程序有什么错误么?谢谢

2024-12-02 23:48:13
推荐回答(4个)
回答1:

基本没有问题,不过:
1 main()前面没指定返回值类型, 应该你用的vc6.0吧,这种形式不标准,趁早改。
标准的就2种,一种是int main(); 另一种是 int main(int argc, char* argv[])

2 pow里面第一个参数写成10.0或者10.0f吧,不然在我的vs2008会有函数重载2义性错误。

To 楼上: main函数是可以递归的,网上可以搜到很多。而且他这么递归可以让程序多次计算不同的N的和,你运行下就知道了。

回答补充:
我的是vs2008,结果正确, 3是356, 4是4800

回答2:

没有错,是正确的 .我运行过了,没错啊!!!

回答3:

程序本身是没有问题的,出错是因为某些编码不对,上面都是<(小于号)被转成了<(这是html小于号的编码),所以你的程序应为下面:
#include
"stdio.h"
#include
"stdlib.h"
#include
"math.h"
main()
{
int
n,i;
long
int
w,s=0;
int
k=1;
printf("请输入N的值(n<10)\n");//<改为<
scanf("%d",&n);//<改为<
while(k<=n)
{
w=0;
for(i=0;i {
w+=(long
int)pow(10,i)*k;
}
s+=w;
k++;
}
printf("%d\n",s);
system("pause");
return
main();
}

回答4:

不知道最后一句return main();是什么意思~~~

就算是递归,main函数也不能拿来递归的~~~