|  |
| |
| clockmaker |
살펴보지는 않았는데요
main 함수에 fgets는 왜 주석처리 하신 거죠?
주석 같이 안 생겼는데요. 그거 한 번 지워보세요 |
2011/05/06 |
|
| psh34 |
주석처리가 맞습니다. 주석처리 한 이유는 처음에 fgets였는데 scanf로 걍 해봣어요
아무튼 진짜 애매하네요. 다른분들한테도 알아보는데 함수를 수정해야한다는 분도 계시네요
저상태에서는 이루어질수 없을까요 |
2011/05/06 |
|
| Prox |
음 대충살펴봤는데요 (이해하려고 해보진않고 ㅎ)
int getIntNum(char firstCharacter) <- 문자 하나를 넘겨받고
{
int num = 0;
int value;
char ch;
if (firstCharacter != '0')
{
ch = firstCharacter;
do
{
num = 10*num + (int)(ch-'0');
ch = getchar(); <- 루프안에서 getchar를 호출하는데
}while(isdigit(ch));
}
else
{
ch = getchar();
if((ch>='0')&&(ch <='7'))
do
{
num = 8*num + (int)(ch-'0');
ch = getchar();
}while((ch>='0')&&(ch <='7'));
else if ((ch == 'X') || (ch=='x'))
{
while((value = hexValue(ch=getchar())) != -1)
num = 16 * num + value ;
}
else num = 0;
}
ungetc(ch , stdin);
return num;
}
힌트는 "교수님은 첫번째거만 넘겨주면 알아서 해주니 함수부분은 신경쓰지말라는데...for도 필요없다고 하시고..."
그렇다면.. 첫글자로 무얼 넘겨주면, 루프안에서 getchar로 글자를 받아오면서
무슨 일인가를 한다는말인데......
int getIntNum(char firstCharacter) <- 캐릭터하나 넘겨주고
..
ch = firstCharacter; <- 그게 ch에 저장되고
..
if((ch>='0')&&(ch <='7')) <- 이런 비교문도있고
..
else if ((ch == 'X') || (ch=='x')) <- 이런 비교문도 있네요 ^^
이이상은 스스로 해석하려고 해보세요 |
2011/05/06 |
|
| clockmaker |
메인함수만 완성하면 되는 거죠?
함수를 수정할 필요 전혀 없고요. 가볍게 이 정도 하면 되겠네요. 흠
int main() {
char ch;
int forPrint;
printf("input : ");
scanf("%c" , &ch);
forPrint = getIntNum(ch);
printf("answer : %d", forPrint);
} |
2011/05/06 |
|
| clockmaker |
이 게시판은 들여쓰기가 안 되는군요;; 별로 길진 않으니 상관 없겠죠 ㅎㅎ
생각해 볼 점은 scanf가 %c로 받는 것과,
getIntNUm 함수가 넘겨 받는 게 'firstCharacter'라는 점 정도입니다.
변수 이름은 괜히 짓는 게 아니죠 ㅇ_ㅇ
string 통째로 넘겨줘야 할까요 charcter 하나를 넘겨줘야 할까요?? |
2011/05/06 |
|
| psh34 |
아;;; 한개만 주면 된다는게 string통째가 아니라 맨앞에 한개만 보내면 된다는거였군요;;
감사합니다 덕분에 풀어냈습니다.ㅠㅠ |
2011/05/09 |
|