本文目录一览:
- 1、C语言 科学计数法
- 2、c语言,输出科学计数法
- 3、C语言科学记数法
C语言 科学计数法
do {
a1[i++]=getchar();
}while (a1[i]!='.');
这儿的判断不对,因为此时a1[i]还没有值。
c语言,输出科学计数法
#include stdio.h
#include string.h
char num[110];
char result[110];
int len;
int main()
{
int i,j;
int s1,s2; //小数点位置,字符串首个非零数位置
int find1 = 0;
int find2 = 0; //find1:是否找到小数点位置标志位,find2:是否找到首个非零数位置,0:表示未找到
int index;
scanf("%s",num);
len = strlen(num); //读取字符串长度
for(i = 0;i len;++i) //寻找原字符串中小数点与首个非零数的位置
{
if(find1 find2)
break;
if(num[i] == '.'){
s1 = i;
find1 = 1;
}
else if(num[i] != '0' !find2){
find2 = 1;
s2 = i;
}
}
if(s1-s2 0) //根据二个位置确定指数大小
index = s1-s2-1;
else if(s2 s1)
index = s1-s2;
j = 0;
for(i = s2;i len;++i) //确定底数
{
if(num[i] == '.')
continue;
else if(i == s2) { //确定底数小数点位置
if(num[i+1]){
result[j++] = num[i];
result[j++] = '.';
}
else
result[j++] = num[i];
}
else
result[j++] = num[i];
}
result[j] = '\0';
printf("%se%d\n",result,index);
return 0;
}
C语言科学记数法
double a = 1.2e5
char buf[100]
sprintf(buf, "%e", a);/*先sprintf %e 输出到字符数组,然后再去对字符数组里的字符串做适当的调整*/
.......剩下的代码就是看你字符串 处理 功力了