| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:作业,麻烦告诉我怎么做。谢谢
只看楼主 加入收藏
alio
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-1-19
收藏
 问题点数:0 回复次数:8 
作业,麻烦告诉我怎么做。谢谢
.输入一个double类型数据,然后输入一个整数代表需要保留的小数位数,通过计算对输入的小数保留N位,并且把结果输出(不要使用精度和*修饰符)。
搜索更多相关主题的帖子: 作业 麻烦 
2007-01-25 18:58
autosun
Rank: 1
来 自:辽宁沈阳
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-1-21
收藏
得分:0 
可以对这个数做String处理,然后……
会不??这是我想的办法

2007-01-25 19:37
alio
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-1-19
收藏
得分:0 
你帮我写一个吧哈
2007-01-25 19:42
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
樓主不要直接叫別人幫你寫程序...此題還可以用這種方法做,用 SWITCH

这个社会太复杂。。。
2007-01-25 20:54
alio
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-1-19
收藏
得分:0 

#include <stdio.h>
#include <math.h>
main()
{
double a;
int i,b,c,e;
clrscr();
printf("please input double type a:");
scanf("%lf",&a);
/* printf("%lf\n",a);*/
printf("please input integer i:");
scanf("%d",&i);
b=(int)a;
/* printf("%d\n",b);*/

e=(a-b)*pow(10,i);
/* printf("%d",e);*/
if(0<=i<=9)
printf("%d.%01d",b,e);
else
if(10<=i<=99)
printf("%d.%02d",b,e);
else
if(100<=i<=999)
printf("%d.%03d",b,e);
else
printf("%d.%04d",b,e);

}
可是为什么我左边不能补0啊,麻烦告诉我一下啊谢谢啊


[此贴子已经被作者于2007-1-25 22:07:55编辑过]

2007-01-25 21:51
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
请把你的程序补充完整一点好不?
这个应该没有什么难的.
呵呵~
顶~~~~~~~~

~~我的明天我知道~~
2007-01-26 15:13
hiaod
Rank: 1
等 级:新手上路
威 望:1
帖 子:66
专家分:0
注 册:2007-1-25
收藏
得分:0 
5楼程序中的两个 if 语句条件显然是写错了。应该是:

第1个: if(i >= 0 && i <= 9)
第2个: if(i >= 100 && i<=999)

按原来的表示,0 <= i <= 9 永远是真,因为关系运算是从左到右的,计算机先计算 0 <= i, 根据i的值,结果是0或1;
然后再计算 0 (或者1) <= 9 所以结果为真。
2007-01-26 22:22
子夜狂人
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-1-25
收藏
得分:0 
如果是我做
我会把小数a(保留n位)扩大10的n+1次方得int A
然后A与10求余得余数b
if (b>=5)
A+=10;
int Aa=A/10
再把Aa缩小10的n次方
2007-01-28 14:58
penggf
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-1-19
收藏
得分:0 

8楼的想法不错,我编了个,
#include"stdio.h"
main()
{int n,i,k,f1;
double f;
char a[50];
printf("input n:");
scanf("%d",&n);
printf("input f:");
scanf("%lf",&f);
printf("n=%d,f=%f\n",n,f);
f1=(int)f/1;
for(i=0;i<n;i++)f*=10;

for(i=0;i<n;i++){a[i]=(int)f%10+'0';
f/=10;
};
printf("f=%d.",f1);
for(k=i-1;k>=0;k--)printf("%c",a[k]);
getch();}

[此贴子已经被作者于2007-1-28 16:32:02编辑过]

2007-01-28 16:28
快速回复:作业,麻烦告诉我怎么做。谢谢
数据加载中...
 
   



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

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