如何实现把一个数字的每一位存储到一个数组中?
如题,谢谢各位高手了不能除以10吧,可能是小数呢,比如3245.1234,把这个数的每一位放进一个数组。让a[1]=3,a[2]=2,a[3]=4。。。。这样...
如题,谢谢各位高手了
不能除以10吧,可能是小数呢,比如3245.1234,把这个数的每一位放进一个数组。让a[1]=3,a[2]=2,a[3]=4。。。。这样 展开
不能除以10吧,可能是小数呢,比如3245.1234,把这个数的每一位放进一个数组。让a[1]=3,a[2]=2,a[3]=4。。。。这样 展开
展开全部
用字符串方式读入
用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]);
}
}
用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]);
}
}
展开全部
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所说当字符串输入,再转化为整数。
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所说当字符串输入,再转化为整数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用_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 ;
}
#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 ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
除十取余
i=0;
while(a!=0)
{
b[i]=a%10;
i++;
a/=10;
}
i=0;
while(a!=0)
{
b[i]=a%10;
i++;
a/=10;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
转换成字符串String,然后用substring截取每一位数字
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询