1580, 2/79 회원가입  로그인  
   Acacia
   C언어 문법 1 (응용 : 점수를 학점으로 변경하기)

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1186 [복사]


해쿨을 알고 지낸지도 5년이 넘었는데

그동안 배워가기만 하고 무언가 남길 생각은 하지 못했네요

아직 배우는 입장이지만 그래도 조금이라도 제가 알고 있는것을

알려드리면 의미 있지 않을까 해서 가끔가다 하나씩 적어 놓겠습니다.


자신이 초급에서 중급으로 변화중이거나 이제 중급에 입문하셨다고 생각하시는 분들에게 알맞는 문제라고 생각합니다.


먼저 문제를 낼께요

대학점수는 0~100 점까지 있죠 그럼 함수에서 인자값으로 점수를 입력받으면
학점 A부터 F까지 리턴하는 함수를 만들려고 합니다.
편의상 +는 제외하고 A, B, C, D, F만 리턴하는 것으로 하고
A는 100~90, B는 89~80 C는 79~70, D는 69~60, F는 59이하일 경우라고 생각합니다.


문제 보시고 이거 장난하냐?
간단한거네 라고 생각하실텐데요


여러분들이 대부분 생각하는걸 맞춰 볼까요?
if, if else, swtich를 떠올리시겠죠?

그럼 더 깊게 생각해서 이 함수를 한줄에 구현하려고 합니다.
답보시기 전에 한번 생각해보세요.
알겠다고 생각하시면 님은 이미 중수 이상급 -_-; ㅋㅋㅋㅋㅋㅋㅋ
모르시겠다고 생각하시면 스크롤을 내리세요























char point(int num) {
   return "FFFFFFDCBAA"[num/10];
}


자 ~
많은 분들이 if, else, swtch를 우선적으로 생각하셨겠지만
우리가 알고있는 문법을 간단하게만 이용하면 이런것이 가능합니다.

char a[10] = "KOREA";
가 있다면 a[0]은 'K'부터 a[4]가 'A'인건 모두들 아시죠

근데 이런것도 됩니다.
"KOREA"[0]은 'K'고 "KOREA"[4]는 'A'인것이죠

혹시 위의 내용을 모르셨더라고 배열을 아신다면 이제는 이해하셨을 것이라고 생각이 됩니다.



많은 분들이 대부분 알고 있는 내용이시겠지만 그래도 가끔 해쿨오면 어리신분들도 이제 막 c언어를 배우시는 분들도 많아서 혹시 몰라 참고하시라고 이렇게 글을 쓰게되었네요

요즘 이런 응용에 대해 많이 공부중이라 일주일에 1, 2개씩 학교 수업이나 책에서 쉽게 다루지 않는 응용을 올려보도록 하겠습니다.

많은 관심이나 태클 받도록 하겠습니다 ^^;

즐거운 하루 되세요~

  Hit : 8606     Date : 2009/02/05 10:12



    
zhuji90 char point(int num) 이 부분이 이해가 잘 안가네요.. 배열을 선언한거가요.. 아니면 함수인건가요..

return "FFFFFDBCA" [num/10] <- 이의미는
point[0]=F
point[1]=F
point[2]=F
point[3]=F
.
.
.

이런 뜻인가요.... point(정수) <- 이것의 의미좀 알려주세요..
2009/02/09  
Acacia 그냥 함수 선언입니다.

int main() {
char ch;
ch = point(88);

return 0;
}

char point(int num) {
return "FFFFFFDCBAA"[num/10];
}

이 되면 ch에는 B가 리턴 되겠죠

2009/02/09  
Acacia return "FFFFFDBCA" [num/10] <- 이의미는
point[0]=F
point[1]=F
point[2]=F
point[3]=F
.

이런뜻은 아니고요

"ABCDEF"라는 하나의 스트링이 있다면
"ABCDEF"[0] --> 'A'
"ABCDEF"[1] --> 'B'
"ABCDEF"[2] --> 'C'
이런 의미로 쓸수 있다는 말입니다.

for(int i = 5; i >= 0; i++)
printf("%c", "ABCDEF"[i]);

이런 포멧으로 출력한다면 화면에 FEDCBA라고 출력도 가능하다는 뜻입니다.

이해 안되시면 글 남겨주세요~
2009/02/09  
zhuji90 Acacia님 정말 감사드립니다. 배열 선언에서 몰랐던 부분을 알 수 있었네요. 다음편도 기대할게요~ 2009/02/09  
Acacia ('' ) ㅡㅡa 감사합니다.
약간 오해의 소지가 있을까봐 또 적게 되었는데요
배열 형식으로 문자열중 특정 문자에 접근할수 있는 것이지
배열이 선언된것과는 관련은 없습니다.

제가 너무 나대는 건지 모르겠네요 ;;ㅋ
이해해 주세요 ^^;
2009/02/09  
똥마루 좋은것을 알고 가요~

앞으로두 C언어 응용에 대해서 많은 글을 써주시기 바랍니다...+_+
2009/02/12  
powe0119 좋은것을 보고갑니다 ^^
다시 기본적인것을 복습하니 감회가 새롭네요 ^^
2009/03/14  
ufo230 이런거 할라면 c언어부터 공부해야되죠? 2009/04/24  
1560   인터넷속도 빠르게 하는거랄까요...?[4]     abcc0579
10/21 7656
1559   클래스중 사설아이피 대역.[5]     abcc0579
06/13 9040
  C언어 문법 1 (응용 : 점수를 학점으로 변경하기)[8]     Acacia
02/05 8605
1557   C언어 문법 2 (문법 : 증감연산자의 이해)[1]     Acacia
02/09 8869
1556   C언어 문법 3 (응용 : scanf의 몰랐던기능)[7]     Acacia
02/15 10190
1555   [자작] 구글 검색법[13]     초콜렛나인
02/08 15168
1554   [자작] C++ 기초 플러스 # 1[3]     초콜렛나인
02/09 8147
1553   [링크+자작] 텔넷관련과 텔넷이 안될때의 해결법과 한글깨짐[6]     초콜렛나인
03/02 14454
1552   [링크] HTML 링크들..[5]     초콜렛나인
03/01 7234
1551   [정리] 해커스쿨 F.T.Z trainer 정리 1 ~ 5[11]     초콜렛나인
03/01 15778
1550   [정리] 해커스쿨 F.T.Z trainer 정리 6 ~ 10[2]     초콜렛나인
03/01 17580
1549   [자작후링크]KSSN 다시 씁니다 (제대로)[1]     초콜렛나인
03/07 12953
1548     [re] [자작]구글링을 막는 간단한팁[1]     초콜렛나인
03/12 10069
1547   파이프를 이용하라는데 키보드에서 파이프가 뭐죠?[4]     agnes794
12/03 6248
1546   [자작해설]백트랙의 정석*[2]     인천해커
01/20 7472
1545   백트랙의정석 제2-1강[5]     인천해커
01/21 12935
1544   힌트[10]     akwjs566
03/31 5885
1543   바이러스 만들기[8]     akwjs566
03/31 8825
1542   컴퓨터끄기[9]     akwjs566
04/10 6817
1541   혹스[3]     akwjs566
04/11 6278
[1] 2 [3][4][5][6][7][8][9][10]..[79]

Copyright 1999-2023 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com