728x90
728x170
c언어 연습 (문제풀이 중심의) 5장 해설 및 답지, 문제풀이
5-1. 여러 가지 수식 작성 (if문 사용)
(1) if((number > 1) || (number < 10))
(2) if((ch != 'q') && (ch != 'z'))
(3) if((no >= 1) && (no <= 10) && (no != 5))
(4) if((no < 1) && (no > 10))
(5) if((ch == ' ') || (ch == '\n'))
5-2.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int score;
char grade;
scanf(" %d", &score);
if (score >= 90)
grade = 'A';
else if (score >= 80) //여기서부터 if앞에 else가 있어야함
grade = 'B';
else if (score >= 70)
grade = 'C';
else if (score < 70)
grade = 'F';
printf("%c\n", grade);
return 0;
}
5-3.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int no;
scanf(" %d", &no); //no앞에 &가 없음
if ((no >= 1) || (no <= 10)) //나눠서 작성
printf("%d\n", no * 2);
return 0;
}
5-4. 틀린 부분 고치기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int score;
char grade;
score = 85;
switch (score / 10) {
case 10:
case 9:
'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'F';
}
printf("%c\n", grade);
return 0;
}
5-5.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num;
scanf(" %d", &num);
if (num >= 0)
printf("%d는 양의 값입니다.", num);
else
printf("%d는 음의 값입니다.", num);
return 0;
}
5-6.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char ch;
scanf(" %c", &ch);
if ((ch >= 'A') && (ch <= 'Z'))
printf("대문자 %c입니다.", ch);
else if ((ch >= 'a') && (ch <= 'z'))
printf("소문자 %c입니다.", ch);
return 0;
}
5-7.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int no1, no2, diff;
printf("두 수 입력: ");
scanf(" %d %d", &no1, &no2);
if (no1 > no2)
diff = no1 - no2;
else
diff = no2 - no1;
printf("두 수의 차 : %d", diff);
return 0;
}
5-8.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int time;
printf("시간(1~24): ");
scanf(" %d", &time);
if (time <= 12)
printf("오전 %d시", time);
else
printf("오후 %d시", time - 12);
return 0;
}
5-9.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char ch;
printf("영문자를 입력하세요: ");
scanf(" %c", &ch);
if ((ch >= 'a') && (ch <= 'z'))
printf("결과: %c", ch - 'a' + 'A');
else
printf("결과: %c", ch);
return 0;
}
5-10.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num1, num2;
printf("두 수를 입력하세요: ");
scanf(" %d %d", &num1, &num2);
if (num1 * num2 >= 0)
printf("결과: %d", num1 * num2);
else
printf("결과: %d", num1 * num2 * -1);
return 0;
}
5-11.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num;
printf("정수를 입력하세요: ");
scanf(" %d", &num);
switch (num % 2) {
case 0:
printf("%d는 짝수입니다.", num);
break;
case 1:
printf("%d는 홀수입니다.", num);
break;
}
return 0;
}
5-12.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char ch1, ch2, ch3;
printf("영문자를 입력하세요: ");
scanf(" %c %c %c", &ch1, &ch2, &ch3);
if (ch1 < ch2) {
if (ch3 < ch1)
printf("결과: %c", ch3);
else
printf("결과: %c", ch1);
}
else {
if(ch3 < ch2)
printf("결과: %c", ch3);
else
printf("결과: %c", ch2);
}
return 0;
}
5-13.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int grade;
printf("등급 입력(1~8): ");
scanf(" %d", &grade);
if ((grade == 8) || (grade == 7))
printf("아주 많이 노력해야 겠어요.");
else if ((grade == 6) || (grade == 5))
printf("노력해야 겠어요.");
else if ((grade == 4) || (grade == 3))
printf("잘했어요");
else if ((grade == 2) || (grade == 1))
printf("아주 잘했어요.");
return 0;
}
5-14. 입력받은 성적에 대응하는 등급 출력 (if문 사용)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int grade;
printf("성적 입력: ");
scanf(" %d", &grade);
if (grade > 100 || grade < 0)
printf("잘못된 입력");
else if (grade >= 90)
printf("A");
else if (grade >= 80)
printf("B");
else if (grade >= 70)
printf("C");
else if (grade >= 60)
printf("D");
else
printf("F");
return 0;
}
5-15. 입력받은 등급에 대응하는 조언 및 칭찬 출력 (switch문 사용)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int grade;
printf("등급: ");
scanf(" %d", &grade);
switch (grade) {
case 1:
printf("아주 잘했어요");
break;
case 2:
case 3:
printf("잘했어요");
break;
case 4:
case 5:
printf("노력해야겠어요");
break;
case 6:
case 7:
printf("아주 많이 노력해야 겠어요");
break;
default:
printf("잘못된 입력");
}
return 0;
}
5-16. 입력받은 영문자로 시작하는 프로그래밍 언어명 출력 (switch문 사용)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char ch;
printf("영문자 입력: ");
scanf(" %c", &ch);
switch (ch) {
case 'b':
case 'B':
printf("BASIC");
break;
case 'c':
case 'C':
printf("COBOL");
break;
case 'f':
case 'F':
printf("FORTRAN");
break;
case 'l':
case 'L':
printf("LISP");
break;
case 'p':
case 'P':
printf("PASCAL"); //Pascal만 소문자로 나와서 대문자로 고침
break;
default:
printf("잘못된 입력");
}
return 0;
}
5-17. 입력받은 등수에 대응하는 상품 출력 (switch문 사용)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int rank;
printf("등수: ");
scanf(" %d", &rank);
printf("상품: \n");
switch (rank) {
case 1:
printf(" 프린터\n");
case 2:
printf(" 컴퓨터\n");
case 3:
printf(" 상금\n");
case 4:
printf(" 상패\n");
break;
default:
printf("잘못된 입력");
}
return 0;
}
5-18. 입력받은 성적에 대응하는 등급 출력 (switch문 사용)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int grade;
printf("성적: ");
scanf(" %d", &grade);
if (grade > 100 || grade < 0) {
printf("잘못된 입력");
return 0;
}
switch(grade / 10) {
case 10:
case 9:
printf("등급 : A");
break;
case 8:
printf("등급 : B");
break;
case 7:
printf("등급 : C");
break;
case 6:
printf("등급 : D");
break;
default:
printf("등급: F");
break;
}
return 0;
}
5-19. 두 숫자와 연산기호를 입력받아서 연산 결과 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int num1, num2;
char oper; //연산자
printf("입력(연산기호, 숫자, 숫자): ");
scanf(" %c %d %d", &oper, &num1, &num2);
printf("연산 결과: ");
switch (oper) {
case '+':
printf("%d", num1 + num2);
break;
case '-':
printf("%d", num1 - num2);
break;
case '*':
printf("%d", num1 * num2);
break;
case '/':
printf("%d", num1 / num2);
break;
default:
printf("ERROR");
break;
}
return 0;
}
5-20. 지불금액 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int price;
int num; //개수
printf("물건값: ");
scanf(" %d", &price);
printf("개 수: ");
scanf(" %d", &num);
printf("금 액: ");
if (price * num <= 5000)
printf("%d", price * num);
else
printf("%d", price * num - (int)(price * num * 0.1));
return 0;
}
5-21. 잔금의 동전별 개수 출력
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int deposit; //입금액
int price; //물건값
int change; //잔금
printf("입금액: ");
scanf(" %d", &deposit);
printf("물건값: ");
scanf(" %d", &price);
change = deposit - price;
printf("잔 금: %d원 {", change);
if (change >= 500) {
printf(" 500원(%d)", change / 500);
change = change - 500 * (change / 500);
}
if (change >= 100) {
printf(" 100원(%d)", change / 100);
change = change - 100 * (change / 100);
}
if (change >= 50) {
printf(" 50원(%d)", change / 50);
change = change - 50 * (change / 50);
}
if (change >= 10) {
printf(" 10원(%d)", change / 10);
change = change - 10 * (change / 10);
}
printf(" }");
return 0;
}
#c언어 express #c언어 공부법 #c언어 공부방법 #c언어 기초 #c언어 해킹
728x90
그리드형
'IT > 프로그래밍' 카테고리의 다른 글
명품 C++ Programming 1장 실습 문제 문제풀이 해설 (0) | 2021.05.02 |
---|---|
문제풀이 중심의 c언어 연습 6장 문제 풀이 해설 (0) | 2021.05.01 |
c언어 연습 (문제풀이 중심의) 4장 문제풀이 해설 (0) | 2021.04.30 |
c언어 연습 (문제풀이 중심의) 3장 문제풀이 해설 (0) | 2021.04.29 |
c언어 연습 (문제풀이 중심의) 2장 문제풀이 해설 (0) | 2021.04.29 |
댓글