[3์ฃผ์ฐจ ๊ฐ๋ ]
โ๏ธ ์ปดํ์ผ๋ง - ์ปดํ์ผ๋ง, ์ด์ ๋ธ๋ง, ๋งํน
์ ์ฒ๋ฆฌ -> ์ปดํ์ผ๋ง -> ์ด์ ๋ธ๋ง -> ๋งํน
์ ์ฒ๋ฆฌ : ์ค์ง์ ์ธ ์ปดํ์ผ์ด ์ด๋ฃจ์ด์ง๊ธฐ ์ ์ ๋ฌด์ธ๊ฐ๋ฅผ ์คํ
์ปดํ์ผ๋ง : C์ฝ๋๋ฅผ ์ด์ ๋ธ๋ฆฌ์ด๋ผ๋ ์ ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ปดํ์ผ
์ด์ ๋ธ๋ง : ์ด์ ๋ธ ๋จ๊ณ๋ก ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ค๋ธ์ ํธ ์ฝ๋๋ก ๋ณํ(=์ฐ์๋ 0๊ณผ 1๋ค๋ก ๋ฐ๊ฟ์ฃผ๋ ์์ )
๋งํน : ์ฌ๋ฌ ๊ฐ์ ํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ด ํ๋์ ์ค๋ธ์ ํธ ํ์ผ๋ก ํฉ์นจ
โ๏ธ ๋๋ฒ๊น - ๋๋ฒ๊น , help50, debug50
๋ฒ๊ทธ : ์ฝ๋์ ๋ค์ด์๋ ์ค๋ฅ
๋๋ฒ๊น
: ์ฝ๋์ ์๋ ๋ฒ๊ทธ๋ฅผ ์๋ณํ๊ณ ๊ณ ์น๋ ๊ณผ์
โ๏ธ ์ฝ๋์ ๋์์ธ - check50, style50, ๊ณ ๋ฌด ์ค๋ฆฌ
check50 : ์๋ ๊ฒ์ฌ ํ๋ก๊ทธ๋จ
style50 : ์ฝ๋๊ฐ ์ฌ๋ฏธ์ ์ผ๋ก ์ ์์ฑ๋์ด ์๋์ง ๊ฒ์ฌ
โ๏ธ ๋ฐฐ์ด(1) - ๋ฐฐ์ด
โ๏ธ ๋ฐฐ์ด(2) - ๋ฐฐ์ด, ์ ์ญ ๋ณ์
์ ์ญ ๋ณ์ : ๋ฐ๋์ง ์๋ ๊ฐ(=์์), ์ ์ธ ์ ๋ณ์ ์์ const ์ฌ์ฉํ๊ณ ๋ณ์๋ ๋๋ฌธ์๋ก ํ๊ธฐ
๋ฐฐ์ด ๋์ ์ ์ธ ๋ฐ ์ ์ฅ : ๋ฃจํ์ ํจ์๋ฅผ ์ ์ธํ๋ฉด ์ข ๋ ๋์ ์ธ ํ๋ก๊ทธ๋จ ์์ฑ ๊ฐ๋ฅ
โ๏ธ ๋ฌธ์์ด๊ณผ ๋ฐฐ์ด - ๋ฌธ์, ๋ฌธ์์ด
๋ฌธ์์ด์ ๊ฐ์ฅ ๋์ ‘\0’์ ๋ฌธ์์ด์ ๋์ ๋ํ๋ด๋ ๋ ์ข ๋จ ๋ฌธ์
โ๏ธ ๋ฌธ์์ด์ ํ์ฉ - strlen, toupper
strlen : ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์๋ ค์ฃผ๋ ํจ์
toupper : ๋๋ฌธ์ ๋ณํ
โ๏ธ ๋ช ๋ นํ ์ธ์ - ๋ช ๋ นํ ์ธ์, argv, argc
int main(int argc, string argv[]) ์์
argc : main ํจ์๊ฐ ๋ฐ๊ฒ ๋ ์ ๋ ฅ์ ๊ฐ์
argv[] : ์ ๋ ฅ์ด ํฌํจ๋์ด ์๋ ๋ฐฐ์ด(string ๋ฐฐ์ด)
[3์ฃผ์ฐจ ํ๋ณ๋ฏธ์ ]
#include <stdio.h>
#include <cs50.h>
void printTable(void); // ํ์ ํ
์ด๋ธ ์ถ๋ ฅํด์ฃผ๋ ํจ์ ์ ์ธ
void calculate(void); // ํ์ ๊ณ์ฐํด์ฃผ๋ ํจ์ ์ ์ธ
const int exitCode = 999; // ์์(์ข
๋ฃ ์ฝ๋) ์ ์ธ
int main(void) {
printTable(); // ํ์ ํ
์ด๋ธ ์ถ๋ ฅํด์ฃผ๋ ํจ์ ํธ์ถ
calculate(); // ํ์ ๊ณ์ฐํด์ฃผ๋ ํจ์ ํธ์ถ
}
void printTable(void) {
printf("ํ์ ํ๋ก๊ทธ๋จ\n์ข
๋ฃ๋ฅผ ์ํ๋ฉด \"999\" ๋ฅผ ์
๋ ฅ\n");
printf("[ํ์ ํ
์ด๋ธ]\n");
printf("์ ์ : 95 90 85 80 75 70 65 60 0\n");
printf("ํ์ : A+ A B+ B C+ C D+ D F \n");
}
void calculate(void) {
int number = 0; // ์
๋ ฅ๋ฐ๋ ์ ์ 0์ผ๋ก ์ด๊ธฐํ
char* score[9] = {"A+", "A", "B+", "B", "C+", "C", "D+", "D", "F"}; // ๋ฌธ์์ด(ํ์ ) ์ ์ฅํ๋ ํฌ์ธํฐ ๋ฐฐ์ด ์ ์ธ
while (number != exitCode) { // 999๋ฅผ ์
๋ ฅ๋ฐ์ง ์๋ ๋์ ๋ฐ๋ณต
printf("์ฑ์ ์ ์
๋ ฅํ์ธ์(0 ~ 100) : ");
scanf("%d", &number);
if (number == exitCode) { // 999๋ฅผ ์
๋ ฅํ๋ฉด while๋ฌธ์ ํ์ถํ์ฌ ์ข
๋ฃ
printf("ํ์ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค.");
break; // while๋ฌธ ํ์ถ
}
else if (number < 0 || number > 100) { // 0~100์ ๋ฒ์์์ ๋๋์ง ๊ฒ์ฌ
printf("** %d ์ฑ์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์
๋ ฅํ์ธ์. ๋ฒ์๋ 0 ~ 100 ์
๋๋ค.\n", number);
}
else if (number >= 95) { // 95์ด์์ด๋ฉด A+ ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[0]);
}
else if (number >= 90) { // 90์ด์์ด๋ฉด A ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[1]);
}
else if (number >= 85) { // 85์ด์์ด๋ฉด B+ ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[2]);
}
else if (number >= 80) { // 80์ด์์ด๋ฉด B ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[3]);
}
else if (number >= 75) { // 75์ด์์ด๋ฉด C+ ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[4]);
}
else if (number >= 70) { // 70์ด์์ด๋ฉด C ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[5]);
}
else if (number >= 65) { // 65์ด์์ด๋ฉด D+ ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[6]);
}
else if (number >= 60) { // 60์ด์์ด๋ฉด D ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[7]);
}
else { // ๊ทธ ์ธ(60 ๋ฏธ๋ง)์ ํด๋นํ๋ฉด F ์ถ๋ ฅ
printf("ํ์ ์ %s ์
๋๋ค.\n", score[8]);
}
}
}
'๊ฐ๋ฐ > CS50 ์ฝ์นญ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS50 ์ฝ์นญ์คํฐ๋] 5์ฃผ์ฐจ_๋ฉ๋ชจ๋ฆฌ (0) | 2021.03.01 |
---|---|
[CS50 ์ฝ์นญ์คํฐ๋] 4์ฃผ์ฐจ_์๊ณ ๋ฆฌ์ฆ (0) | 2021.02.28 |
[CS50 ์ฝ์นญ์คํฐ๋] 2์ฃผ์ฐจ_C์ธ์ด (0) | 2021.02.25 |
[CS50 ์ฝ์นญ์คํฐ๋] 1์ฃผ์ฐจ_์ปดํจํ ์ฌ๊ณ (0) | 2021.02.25 |
[CS50 ์ฝ์นญ์คํฐ๋] 0์ฃผ์ฐจ_์ค๋ฆฌ์ํ ์ด์ (0) | 2021.02.20 |