c语言科学记数法正确表示方法,输入: 用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。 输出: 该...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

xinchun5120

2014.12.15

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:43%    等级:11

已帮助:12305人

#include "stdio.h"

#include "string.h"

#define N 50

main() {

char a[N],a1[N],a2[N],zhongjian;

int s=0,i=0,i1=0,i2=0,i3=0,j1,j2,j3,fuhao=1,num=0,l1,l2,l3,zhishu=0; gets(a1);

if(a1[0]=='0') printf("0.00000000\n"); else {

while(a1[i]!=' '&&a1[i]!='E'&&a1[i]!='e'&&a1[i]!='\0') {

a[i]=a1[i]; i++; }

for(i1=0;i1<=i;i1++) {

if(a[i1]=='.') num++; }

if(num==0) {

a[i]='.'; a[i+1]='\0'; }

else a[i]='\0'; l1=strlen(a); l2=strlen(a1);

if(a1[i]=='E'||a1[i]=='e') zhishu=1; while(a1[i]==' '||zhishu==1) { i++;

if(a1[i]=='E'||a1[i]=='e') zhishu=1; else zhishu=0; } if(a1[i]=='-') { i++; fuhao=-1; }

while(a1[i]!='\0') {

s=s+a1[i]-48; s=10*s; i++; } s=s/10;

while(a[i2]!='.') { i2++; } if(fuhao>0||s==0) {

for(j1=l1;j1<=8+s+i2;j1++) a[j1]='0'; a[j1]='\0';

for(j1=i2;j1<=i2+s-1;j1++) {

zhongjian=a[j1];

a[j1]=a[j1+1]; a[j1+1]=zhongjian; }

if(j1+8

for(j2=0;j2<=j1+8;j2++) printf("%c",a[j2]); printf("\n"); }

else printf("%s\n",a); } else {

for(j1=i2;j1>=1;j1--) {

zhongjian=a[j1]; a[j1]=a[j1-1]; a[j1-1]=zhongjian; }

for(j3=0;j3<=l1;j3++) {

if(a[j3]!='.') {

a2[i3]=a[j1]; i3++; } j1++; }

a2[i3+1]='\0'; l3=strlen(a2); printf("0."); if(s<=8) {

for(i3=1;i3<=s-1;i3++) printf("0");

if(l3>8-s) for(i3=1;i3<=9-s;i3++) printf("%c",a[i3]);

else printf("%s",a2); if(10-l1-s>0) {

for(i3=1;i3<=10-s-l1;i3++) printf("0"); }

printf("\n"); } else {

printf("00000000\n"); } } } }

13分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值