Native/C
char 를 float로 변경하라
aucd29
2013. 10. 2. 18:49
/**********************************************************************
*
* 2005-04-12
* 문자열을 실수형 데이터로 만들어 주어라
*
***********************************************************************/
#include <stdio.h>
#include <string.h>
#define MAX 100
void main(void)
{
float fRes=0.0;
int sign=1, i=0, cnt=1, iRes=0, len=0,jumKind=0;
int sosu=0, temp=0;
char s[MAX];
//
// input data
//
scanf("%s",s);
if(s[0]=='-')
{
sign = -1;
i=1;
}
//
// 소수점 이상 내용 가져오기
//
len = strlen(s);
for(;i<len;i++)
{
if(s[i]=='.') { jumKind=1; break;}
if(s[i]>='0'&&s[i]<='9')
{
if(!iRes)
iRes += s[i]-'0';
else
iRes = iRes * 10 + (s[i] - '0');
}
}
//
// 소수점을 넣지 않았을때
//
if(jumKind)
{
//
// 소수점 이하 내용 가져오기
//
i = len-1;
while(s[i]!='.')
{
if(s[i]>='0'&&s[i]<='9')
{
if(!sosu) sosu = (s[i] - '0');
else
{
temp = s[i]-'0';
if(temp>0)
sosu = sosu + (temp * cnt); // 0 인 것은 무시하고 이상인것은 해당 자리수에 맞게 cnt한 값을 넣어준다.
}
--i;
cnt*=10;
}
}
fRes = ((float)sosu / cnt + iRes) * sign;
}
else
{
fRes = (float)iRes * sign;
}
printf("값을 뿌리자 : %f",fRes);
printf("\n");
}
*
* 2005-04-12
* 문자열을 실수형 데이터로 만들어 주어라
*
***********************************************************************/
#include <stdio.h>
#include <string.h>
#define MAX 100
void main(void)
{
float fRes=0.0;
int sign=1, i=0, cnt=1, iRes=0, len=0,jumKind=0;
int sosu=0, temp=0;
char s[MAX];
//
// input data
//
scanf("%s",s);
if(s[0]=='-')
{
sign = -1;
i=1;
}
//
// 소수점 이상 내용 가져오기
//
len = strlen(s);
for(;i<len;i++)
{
if(s[i]=='.') { jumKind=1; break;}
if(s[i]>='0'&&s[i]<='9')
{
if(!iRes)
iRes += s[i]-'0';
else
iRes = iRes * 10 + (s[i] - '0');
}
}
//
// 소수점을 넣지 않았을때
//
if(jumKind)
{
//
// 소수점 이하 내용 가져오기
//
i = len-1;
while(s[i]!='.')
{
if(s[i]>='0'&&s[i]<='9')
{
if(!sosu) sosu = (s[i] - '0');
else
{
temp = s[i]-'0';
if(temp>0)
sosu = sosu + (temp * cnt); // 0 인 것은 무시하고 이상인것은 해당 자리수에 맞게 cnt한 값을 넣어준다.
}
--i;
cnt*=10;
}
}
fRes = ((float)sosu / cnt + iRes) * sign;
}
else
{
fRes = (float)iRes * sign;
}
printf("값을 뿌리자 : %f",fRes);
printf("\n");
}