| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 274 人关注过本帖
标题:语法上有错误吗?为什么编译没有通过
只看楼主 加入收藏
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
语法上有错误吗?为什么编译没有通过
#include<stdio.h>
#include<math.h>
#define maxsize 100
int main(void)
 {
     double a,b,t[maxsize],s[maxsize],c[maxsize],r[maxsize];
     double f(double c);
     double sum;
     int i,n,k;
     printf("请输入积分下限:\n");
     scanf("%lf",&a);
     printf("请输入积分上限:\n");
     scanf("%lf",&b);
     printf("please input n=\n");
     scanf("%d",&n);
   
   
     for(k=1;k<=n;k++)
     {
         sum=0;
         t[1]=(b-a)*(f(a)+f(b))/2;
         for(i=1;i<=pow(2,k-1);i++)
             sum+=f(a+(b-a)*(2*i-1))/pow(2,k);
         t[pow(2,k)]=t[pow(2,k-1)]/2+(b-a)*sum;
     }
     for(k=1;k<=n;k++)
     {
         s[pow(2,k-1)]=(4/3)*t[pow(2,k)]-(1/3)*t[pow(2,k-1)];
     }
     for(k=2;k<=n;k++)
     {
         c[pow(2,k-2)]=(16/15)*s[pow(2,k-1)]-(1/15)*s[pow(2,k-2)];
     }
     for(k=3;k<=n;k++)
     {
         r[pow(2,k-3)]=(64/63)*c[pow(2,k-2)]-(1/63)*c[pow(2,k-3)];
     }
     printf("r[%d]=%lf",k,r[pow(2,k-3)]);
     return 0;
}


 
 double f(double c)
 {
     double y;
     y=c;
     return y;
 }
     
搜索更多相关主题的帖子: double please include 
2012-12-11 18:28
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:20 
是的,语法上有错误。
s[(int)(pow(2,k-1))]=(4/3)*t[(int)pow(2,k)]-(1/3)*t[(int)pow(2,k-1)];
数组下标应该是整数,pow函数返回值是double类型的,不匹配,会报错,你数组下标表达大都不对。转换成整型就好了,但是不知道对你的结果有没有影响。

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-12-11 19:00
快速回复:语法上有错误吗?为什么编译没有通过
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033892 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved