如何实现把一个数字的每一位存储到一个数组中?

如题,谢谢各位高手了不能除以10吧,可能是小数呢,比如3245.1234,把这个数的每一位放进一个数组。让a[1]=3,a[2]=2,a[3]=4。。。。这样... 如题,谢谢各位高手了
不能除以10吧,可能是小数呢,比如3245.1234,把这个数的每一位放进一个数组。让a[1]=3,a[2]=2,a[3]=4。。。。这样
展开
 我来答
L_o_o_n_i_e
推荐于2017-09-14 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5288万
展开全部
用字符串方式读入
用sscanf 转为 整型 存入 int a[100];
小数点位在n1中,位子 从左端起算,第一个位置为0
没有 小数点 时 n1=200。
程序如下。
例如
输入: 1234567891234567.890123456789
输入:.1234
输入:0.1234 等都可以

#include <stdio.h>
void main(void)
{
char str[100];
int a[100];
int i,len,n1=200,n2;

printf("please enter the number\n");
fgets(str,99,stdin);
len = strlen(str);
len =len-1;
str[len] = '\0';

for (i=0;i<len;i++){
if (str[i] == '.') { n1 = i; continue; }
if (n1 == 200) {sscanf(&str[0]+i,"%1d",&a[i]); } else
{sscanf(&str[0]+i,"%1d",&a[i-1]);
};
};

if (n1 != 200) printf("\ndot at location %d\n",n1);

if (n1 != 200) len--;
for (i=0;i<len;i++){
if (i == n1) printf(".");
printf("%1d",a[i]);
}

}
linzhe13
2008-06-19 · TA获得超过159个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:112万
展开全部
ls的ls,难道不知道小数不能取模。。。

char buffer[100];
int a[100],i=0;
fgets(stdin, "%s", buffer);
while( *chp )
{
if( *chp >= '0' && *chp <= '9' )
{
a[ i++ ] = *chp - '0';
}
++chp;
}

简而言之,就是如ls所说当字符串输入,再转化为整数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1219194
2008-06-19 · 超过19用户采纳过TA的回答
知道答主
回答量:137
采纳率:0%
帮助的人:81.7万
展开全部
直接用_stprintf_s这样的函数就可以了

#include <tchar.h>
#include <string>
using std::string ;

int main()
{

float Test = (float)12.33333 ;

const int BufferSize = 30 ;
char Buffer[BufferSize] ;
_stprintf_s( Buffer , BufferSize , "%f" , Test ) ;

return 0 ;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hollyhades
2008-06-19 · TA获得超过131个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:131万
展开全部
除十取余
i=0;
while(a!=0)
{
b[i]=a%10;
i++;
a/=10;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
raymond418
2008-06-19 · TA获得超过169个赞
知道小有建树答主
回答量:310
采纳率:0%
帮助的人:202万
展开全部
转换成字符串String,然后用substring截取每一位数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式