| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1076 人关注过本帖
标题:请解释一下这两段程的区别!!!
只看楼主 加入收藏
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:15 
请解释一下这两段程的区别!!!
#include   <stdio.h>
#include   <math.h>
 void main()
{
double x,s;
printf("input number:\n");
scanf("%f",&x);
s=sin(x);
printf("%.2f%.2f\n",x,s);

}
这个并输出的结果总是错的
#include "stdio.h"
#include "math.h"
main()
{
 double x,y;
 scanf("%f",&x);
 y=sin(x);
 printf("%f",y);
}
而这个程序结果却是对的!我自己找不出原因!请给看看
搜索更多相关主题的帖子: 解释 
2010-07-05 11:11
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:5 
将计就计:printf("%.2f%.2f\n",x,s);
          这个只保留小数点后两位。

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-07-05 11:19
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 2楼 do8do8do8
我不是这个意思!在第二个程序里的输出语句了里我该成printf("%f%f",x,y);结果x的值是个负数!不知为何
2010-07-05 11:22
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:5 
呵呵,问题找到了
#include   <stdio.h>
#include   <math.h>
void main()
{
double x,s;//你将double换成float试试
printf("input number:\n");
scanf("%f",&x);
s=sin(x);
printf("%.2f%.2f\n",x,s);

}
其他的都没有什么需要改的

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-05 12:37
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 4楼 sunyh1999
谢谢!但是这两个程序输入同一个数据结果还是不一样啊!比如输入三十,前者输出正数,但是后者是负数啊
2010-07-05 12:55
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:5 
没有啊,结果都是一样的
程序1:
#include   <stdio.h>
#include   <math.h>
void main()
{
float x,s;//你将double换成float试试
printf("input number:\n");
scanf("%f",&x);
s=sin(x);
printf("%.2f%.2f\n",x,s);

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



程序2:
#include "stdio.h"
#include "math.h"
main()
{
float x,y;
scanf("%f",&x);
y=sin(x);
printf("%.2f",y);
}
运行结果:
图片附件: 游客没有浏览图片的权限,请 登录注册


你看看,就是把doulbe改成float就可以了

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-05 13:10
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 6楼 sunyh1999
哦!明白了!谢谢哈
2010-07-05 13:16
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
给点分吧

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-05 16:34
zisefengye
Rank: 5Rank: 5
等 级:职业侠客
帖 子:167
专家分:386
注 册:2010-6-27
收藏
得分:5 
double是双精度浮点数,表示范围方式很特殊。正数范围从4.94065645841247E-324 到 1.79769313486232E308,负数范围从-1.79769313486232E308 到 -4.94065645841247E-324。所以楼上说用float是比较合适的。还有c的库函数sin也比较特殊,接受的参数是弧度。假如你要求30度角的正弦,就要把角度换算成弧度。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
int main(int argc, char **argv)
{
    int angle;
    float y;
    scanf("%d", &angle);
    y = sin(angle * 2 * PI / 360);
    printf("%d   %.2f", angle, y);
    return 0;
}
2010-07-05 20:21
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:0 
回复 8楼 sunyh1999
肯定的啊!谢谢啦
2010-07-05 21:25
快速回复:请解释一下这两段程的区别!!!
数据加载中...
 
   



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

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