| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5116 人关注过本帖
标题:求助十分着急 科学计数法请帮我淡淡哪里错了
只看楼主 加入收藏
20072785
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-12-13
收藏
 问题点数:0 回复次数:4 
求助十分着急 科学计数法请帮我淡淡哪里错了
对于非常大或者非常小的数据,我们通常用科学记数法来表示。例如在科技文献和电脑中经常遇到的 2.3×106 (计算机中的科学记数法表示为:2.3E6),或者 9.18×10-5 (科学记树法表示:9.18E-5)这种类型的数据。

输入:
    用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。

输出:
    该数据的双精度表示

说明:
    输入数据的精度不高于小数点后50位。
    输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。
    结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不进行四舍五入的处理
#define N 100  
#include"stdlib.h"  
#include"stdio.h"  
#include"math.h"   
main()   
{char a[N],b[N];int i,t,f1,f2,p;   
gets(a);   
for(i=0;i<N;i++)   
 {   
 while(a[i]=='e'||a[i]=='E')   
    { t=i;   
      for(i=0;i<t;i++)   
      f1=atof(a[i]);   
      for(i=t;a[i]!='\0';i++)   
      f2=atoi(a[i]);   
      p=f1*pow(10,f2);   
    }   
  }
搜索更多相关主题的帖子: 计数法 科学 
2007-12-13 19:10
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
收藏
得分:0 
输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。
用空格分隔,你用的好像是E吧,
2007-12-13 19:28
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
收藏
得分:0 
下面这个程序是从你那改过来的,,我测试的一般都对,精度也合要求了。。
#define N 100  
#include"stdlib.h"  
#include"stdio.h"  
#include"math.h"   
void main()   
{
  char a[N],b[N];
  int i,t,f2,p,q=0;
  float f1=0.0;
  double result;
  int temkp=0;
  gets(a);   
 for(i=0;i<N;i++)  
     if(a[i]=='e'||a[i]=='E') t=i;

//提取基数
  for(i=0;i<t;i++) b[i]=a[i];
  b[i]='\0';
  f1=atof(b);

  //提取阶数  e 后面的数值
  for(i=t+1;a[i];i++) b[q++]=a[i];
  b[q]='\0';
  f2=atoi(b);
 
  result=f1*pow(10,f2);   
  printf("%.15lf\n",result);
}

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-13 23:02
20072785
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-12-13
收藏
得分:0 
求助扫雷题,新颖,怪,急急
29 扫雷(选做)
成绩: 0 / 折扣: 0.8

背景
你玩儿过扫雷游戏吧?有个操作系统中带了这个小游戏,那个系统叫什么来着?在游戏中要想过关,就必须要在一个 NxM 的区域上找出所有的地雷。游戏过程中,计算机会在地图上显示一些数字从而帮助你确定哪里有地雷。例如,在下面这个有两颗地雷的 4x4 的地图(*表示地雷):

*........*...... 根据上面的地图,可以计算出应该提供给游戏者的数字如下所示:

*10022101*101110 每个数字表示了该方格周围到底有几个地雷,当然,一个方格周围最多的时候只会有八个。

输入
输入中将包括一系列的地图,每个地图的第一行有两个整数 n 和 m(0 <n,m <= 100),它们表示了地图的行数和列数。下面的 n 行每行都有 m 个字符,其中 "." 表示安全而 "*" 表示地雷。如果地图的 n 和 m 都为 0,则表示输入结束。

输出
针对每一个地图,首先输出一行:

Field #x:其中 x 是当前地图的编号(从 1 开始)。下面的 n 行则将地图中的 "." 以数字表示,该数字表示该方格周围有多少颗地雷。


来源
[url]http://acm.uva.es/problemset/v101/10189.html[/url]
2007-12-16 17:15
czqkerlin
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-12-1
收藏
得分:0 
会有溢出,感觉那个程序不好。比如1.2 e 50就会有错啦!
所以还是用数组存吧。用移位的方法。。。
2008-12-01 13:44
快速回复:求助十分着急 科学计数法请帮我淡淡哪里错了
数据加载中...
 
   



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

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