有哪些错误 请问 我是新手
#include<stdio.h>#include<stdio.h>
#define A(x,i,j) pow(i-x,i)/(j*i) //A带参红
void mainf(int n)
{
if (n==1)
{
return 1;
}
else if(n==2)
{
return 2;
}
else return f(n-1)+f(n-2);
}
if(n==1) return1;
else if(n==2) return 2;
else return f(n-1)+f(n-2);
int main()void
{
int i,j,n=1;
double a,
s,
x;
printf("输入一个绝对值小于1的数");
do
scanf(" %lf",&x);
while(fabs(x)<=1);
s=x;
do{
s+=a;
n++;
i=f(n);
j=f(n-1);
a=A(x,i,j);
}while(fabs(a)>e-5);
piinf("s=%lf\n",s);
return 0;
}
{:1_1:}LZ的错误可多了随便看看就有如下:
mainf()定义错了应该是f()
int main()void程序入口后面的void
最后piinf("s=%lf\n",s);printf错了 看一下是不是你要的结果,我只是让程序正常运行出来了 一个程序是由人和计算机共同完成的。其中人的优势是具有创造性,劣势是人的计算速度很慢,而且经常出错。计算机的优势是计算速度很快,而且很少出错,劣势是没有创造性。因此好的程序要结合人和计算机两者的优势:即发挥人的创造性和计算机的速度很快,少出错。
但现实中,我们发现很多情况下,许多人编程正好将两者的劣势完全结合起来:比如:希望人能够在没有编译器等工具帮组下在纸上直接写出正确的能够运行的程序。正是由于这种想法,将原来计算机做的事情强加给人做,并且人凭着本性是不可能做好这件事的。因此常做这类违反人性的事情的程序员也往往在性格上越来越不像人,更像计算机。
LZ初学,难免犯一些错误,但一定要学会在编译器的帮助下改正程序,而不是想靠人眼识别出错误。因此下次遇到这种情况,至少要把编译器的报错信息帖上来。看不懂也没关系,至少说明了你的方法是正确的。并且以后慢慢看懂这些报错信息就是正确的学习目标。 首先,我看到这样的代码,我首先是晕了,然后是才振作的起来帮你修改代码,最终我修改的代码是这样的:
!^_^!请问这段重新运行的结果是这样的吗?
本帖最后由 friendan 于 2013-11-6 22:10 编辑
这代码是要解决什么题目?还是胡乱写的?希望告知。
我改了下(VC6):
#include <stdafx.h>
#include<stdio.h>
#include<math.h>
#define A(x,i,j) pow(i-x,i)/(j*i) //A带参红
int f(int n) //既然返回了1或2,返回值类型为int
{
if (n == 1)
{
return 1;
}
else if(n == 2)
{
return 2;
}
else return f(n - 1) + f(n - 2); //从第3项开始,每一项等于前两项之和
}
int main()
{
int i, j, n = 1;
double a,s,x;
printf("输入一个绝对值小于1的数");
do
scanf(" %lf", &x);
while(fabs(x)>=1); //绝对值小于1,不该这样判断:fabs(x) <= 1
s = x;
do{
s += a;
n++;
i = f(n);
j = f(n - 1);
a = A(x, i, j);
}
//while(fabs(a) > e - 5);//哪里来的e
while(fabs(a) >5);
printf("s=%lf\n", s);
return 0;
}
效果截图:
仔细看看
页:
[1]