코드업 C언어 기초 100제에서 [기초-선택실행구조] 풀기
(세 정수가 공백을 두고 입력되며, 적어도 하나는 짝수이다. 그리고 짝수를 줄을 바꿔 출력한다.)
#include <stdio.h>
int main() {
int i, j, k;
scanf("%d %d %d", &i, &j, &k);
if (i % 2 == 0) printf("%d\n", i);
if (j % 2 == 0) printf("%d\n", j);
if (k % 2 == 0) printf("%d\n", k);
return 0;
}
(세 정수가 공백을 두고 입력되며, 입력된 순서대로 짝(even)/홀(odd)을 줄을 바꿔 출력한다.)
#include <stdio.h>
int main() {
int i, j, k;
scanf("%d %d %d", &i, &j, &k);
if (i % 2 == 0) printf("%s\n", "even"); else printf("%s\n", "odd");
if (j % 2 == 0) printf("%s\n", "even"); else printf("%s\n", "odd");
if (k % 2 == 0) printf("%s\n", "even"); else printf("%s\n", "odd");
return 0;
}
(첫 줄에 minus나 plus를 출력하고, 두 번째 줄에 odd나 even을 출력한다. )
#include <stdio.h>
int main() {
int i;
scanf("%d", &i);
if (i >= 0) printf("%s\n", "plus"); else printf("%s\n", "minus");
if (i % 2 == 0) printf("%s\n", "even"); else printf("%s\n", "odd");
return 0;
}
(점수의 형태는 0~100의 정수이며, 다음과 같은 범위로 등급을 출력한다.)
90 ~ 100 : A // 70 ~ 89 : B // 40 ~ 69 : C // 0 ~ 39 : D
#include <stdio.h>
int main() {
int i;
scanf("%d", &i);
if (i >= 90) printf("%s", "A");
else if (i >= 70) printf("%s", "B");
else if (i >= 40) printf("%s", "C");
else printf("%s", "D");
return 0;
}
(문자의 형태는 A, B, C, D, 그 외의 문자이며, 다음과 같은 기준으로 내용을 출력한다.)
A: best!!! // B: good!! // C: run! // D: slowly~ // 나머지 문자들: what?
#include <stdio.h>
#include <string.h>
int main() {
char i;
scanf("%s", &i);
if (strcmp(i, "A")) printf("%s", "best!!!");
else if (strcmp(i, "B")) printf("%s", "good!!");
else if (strcmp(i, "C")) printf("%s", "run!");
else if (strcmp(i, "D")) printf("%s", "slowly~");
else printf("%s", "what?");
return 0;
}
strcmp는 안에 들어가는 문자열의 타입을 const char*로 선언해줘야 함.
거기에 비교하려는 문자 또한 타입변환을 해줘야 함.
거기에 strcmp에서 두 문자열이 같으면 0이 나오므로 if 문에서 사용할 때는 조건문을 확실히 정해줘야 함.
scanf에서 문자열을 입력받을 때는 &가 필요없음.
...으로 풀었음에도 불구하고 도저히 답이 안나옴.
그래서 포기하고 답을 보니깐..
#include <stdio.h>
int main() {
char i;
scanf("%s", &i);
switch(i) {
case 'A':
printf("%s", "best!!!");
break;
case 'B':
printf("%s", "good!!");
break;
case 'C':
printf("%s", "run!");
break;
case 'D':
printf("%s", "slowly~");
break;
default:
printf("%s", "what?");
break;
}
return 0;
}
... 하진짜 바보멍청이야 ㅁ아러미ㅏ러미ㅏ러
#include <stdio.h>
int main() {
int i;
scanf("%d", &i);
switch(i) {
case 12:
case 1:
case 2:
printf("%s", "winter");
break;
case 3:
case 4:
case 5:
printf("%s", "spring");
break;
case 6:
case 7:
case 8:
printf("%s", "summer");
break;
case 9:
case 10:
case 11:
printf("%s", "fall");
break;
}
return 0;
}
1)
strcmp와 strncmp
strcmp: 문자열을 비교해줌.
strncmp: 문자열을 비교해주는데 매개변수로 비교할 문자열 길이도 받음.int strcmp(const char* str1, const char* str2);
int strncmp(const char* str1, const char* str2, size_t n);대소문자 구분이 가능하며, 대소 비교가 가능함. → 각 문자를 아스키 코드로 비교하기 때문임.
첫 번째 문자열이 작으면 음수 반환
첫 번째 문자열이 크면 양수 반환
서로 같은 경우에는 0 반환*헤더파일은 string.h임.
2) 답은 생각보다 가까이 있다.