如果是浮点数又该如何提取呢,比如123456.789,谁答的好,分就给谁了,呵呵
谢谢各位的回答
C语言的话直接用库函数itoa()就行了,要是用算法的话就是不停地除10取模,再把结果反过来。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-09-26
#include <stdio.h>
#include <string.h>
int main()
{
double a=123456.789;
char buf[100];
memset(buf,100,'\0');
//转换成字符型
sprintf(buf,"%lf",a);
int len=strlen(buf);
int i=0;
int j=1;
//去除末尾多余的0
while(buf[--len]=='0')
{
buf[len]='\0';
}
//打印每一位,‘.’不打印
while(buf[i]!='\0')
{
if(buf[i]!='.')
{
printf("[%d] %c\n",j++,buf[i]);
}
i++;
}
return 0;
}追问
#include <string.h>
int main()
{
double a=123456.789;
char buf[100];
memset(buf,100,'\0');
//转换成字符型
sprintf(buf,"%lf",a);
int len=strlen(buf);
int i=0;
int j=1;
//去除末尾多余的0
while(buf[--len]=='0')
{
buf[len]='\0';
}
//打印每一位,‘.’不打印
while(buf[i]!='\0')
{
if(buf[i]!='.')
{
printf("[%d] %c\n",j++,buf[i]);
}
i++;
}
return 0;
}追问
这位大哥程序用的是C++吧,小弟不懂C++,只懂keilC,不能理解你的代码,有没有更简单的直接的一点的,谢谢
追答这是纯c,其实我不会c++。keilC没学过
本回答被提问者采纳第2个回答 2011-09-22
赞同