| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 484 人关注过本帖
标题:[求助]有关scanf的一个问题
只看楼主 加入收藏
ares333
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-9
收藏
 问题点数:0 回复次数:2 
[求助]有关scanf的一个问题

#include "stdio.h"
#include "conio.h"
double collect(double s,double t,int m,double (*p)(double x));
double fun1(double x);
double fun2(double x);
double fun3(double x);

main()
{
int n,flag;
double a,b,v=0.0;
puts("Input the count range(from A to B)and the number of sections\n");
scanf("%lf%lf%d",&a,&b,&n);
puts("enter the function you want to use\n");
scanf("%d",&flag);
if(flag==1)
v=collect(a,b,n,fun1);
else if (flag==2)
v=collect(a,b,n,fun2);
else if (flag==3)
v=collect(a,b,n,fun3);
else
puts("wrong number");

printf("v=%f\n",v);

getch();
return(0);
}
double collect(double a,double b,int n,double (*p)(double x)){
int i;
double f,h,y1,y2,area;
f=0.0;
h=(b-a)/n;
y1=p(a);
for(i=0;i<n;i++){
y2=p(a+i*h+h);
area=(y1+y2)*h/2;
y1=y2;
f+=area;
}

return(f);

}
double fun1(double x){
double fx;
fx=x*x-2*x+2;
return(fx);
}
double fun2(double x){
double fx;
fx=x*x*x+3*x*x-x+2;
return(fx);
}
double fun3(double x){
double fx;
fx=x/(1+x*x);
return(fx);
}

题目是利用梯形法计算定积分,其他代码不用看,只看红色一行。a,b是区间n是分成的小份

图片附件: 游客没有浏览图片的权限,请 登录注册

如果改为
scanf("%f%f%d",&a,&b,&n);
图片附件: 游客没有浏览图片的权限,请 登录注册

%f为什么不可以?

搜索更多相关主题的帖子: scanf 
2006-08-23 17:08
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
%lf是double型的输入格式.%f是float型的输入格式。
两种类型不一致,在传入scanf中出错.

对不礼貌的女生收钱......
2006-08-23 17:28
ares333
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-9
收藏
得分:0 
原来这样啊 谢谢
把a,b改为float型%f输入运行正常

2006-08-23 17:43
快速回复:[求助]有关scanf的一个问题
数据加载中...
 
   



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

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