#include <string.h>
char num[110]
char result[110]
int len
int main()
{
int i,j
int find1 = 0
int find2 = 0 //find1:是否找到小数点位置标志位,find2:是否找到首个非零数位置,0:表示未找到
int index
scanf("%s",num)
len = strlen(num) //读取字符串长度
for(i = 0i < 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 = s2i < 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语言写程序输出时,要控制每行输出数据的个数,可以通过自定义计数器来完成。
如:
// 输出自然数1-30,每5个数为一行main()
{ int i
int cnt=0 // 定义cnt用作输出数据的计数器,初始为0
for( i=1i<=30i++ ) // 循环30次
{ printf("%5d",i) // 输出数据值
cnt++ // 每输出一个值,计数器加一次
if( cnt%5==0 ) // 假设每行输出5个(如果计数器与5取余为0,则换行)
printf("\n") // 输出换行
}
}
#include "stdio.h"int main()
{
char tab[10]="123456789"
int n=0/*用来计数*/
int i=0
while(tab[i])
{
i++
n++
}
printf("%d\n",n)
return 0
}