Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 플로이드-워셜
- MST
- 해시
- 우선순위큐
- DFS
- 다익스트라
- BFS
- 그래프 이론
- 다이나믹프로그래밍
- 크루스칼
- 분할정복
- 그리디
- 재귀
- 서브쿼리
- join
- 다시
- 누적합
- 에라토스테네스의 체
- 백트래킹
- 자료구조
- 투포인터
- 시뮬레이션
- 수학
- GROUP BY
- 브루트포스
- DP
- 구현
- 트리
- 다이나믹 프로그래밍
- 그래프 탐색
Archives
- Today
- Total
기록하고 까먹지 말기
과제 4 - Control Flow (6 ~ 9) 본문
입력받은 점수들의 퍼센트를 구하고 if, else문을 통해 해당 점수들의 등급을 매기는 문제이다.
for문을 통해 5개의 점수를 입력받고 평균및 퍼센트를 구한 후 case에 따라 grade를 출력하면 된다.
#include <stdio.h>
int main(){
int n1, n2, n3, n4, n5;
char g;
printf("Enter five subjects marks: ");
scanf("%d %d %d %d %d", &n1, &n2, &n3, &n4, &n5); // inputs 5 marks
float total = (float)(n1+n2+n3+n4+n5)/5; // calculating total percentages
printf("Percentage = %.2f\n", total);
// getting grade by total
if(total >= 90)
g = 'A';
else if(total >= 80)
g = 'B';
else if(total >= 70)
g = 'C';
else if(total >= 60)
g = 'D';
else if(total >= 50)
g = 'E';
else
g = 'F';
//prints outputs
printf("Grade %c", g);
return 0;
}
평균(퍼센트)를 구하는 경우 소수점이 나올 수 있기 때문에 float를 사용하였고 int를 float로 변환하도록 casting을 활용했다.
Q6를 switch문으로 구현하는 문제다.
#include <stdio.h>
int main(){
int n1, n2, n3, n4, n5;
char g;
printf("Enter five subjects marks: ");
scanf("%d %d %d %d %d", &n1, &n2, &n3, &n4, &n5); // inputs 5 marks
int total = (n1+n2+n3+n4+n5)/5; // calculating total percentages
printf("Percentage = %d\n", total);
total = total / 10; // calculting total to operate switch
// getting grade by total
switch(total){
case 9:
g = 'A';
break;
case 8:
g = 'B';
break;
case 7:
g = 'C';
break;
case 6:
g = 'D';
break;
case 5:
g = 'E';
break;
default:
g = 'F';
break;
}
//prints outputs
printf("Grade %c", g);
return 0;
}
3개의 각도를 입력받고 이를 통해 삼각형을 이룰 수 있는지의 여부를 묻는 문제이다.
삼각형의 세 각의 합은 무조건 180도가 된다는 개념을 알아야 해결 가능하다.
#include <stdio.h>
int main(){
int n1, n2, n3;
printf("Enter three angles of triangle:\n"); // input three numbers
scanf("%d %d %d", &n1, &n2, &n3);
if((n1+n2+n3) == 180) // check whether total angle is same with triangle
printf("Triangle is valid."); // print output
else
printf("Triangle is not valid.");
return 0;
}
switch문을 통해 두 수와 operator를 입력받고 그에 따른 결과값을 출력하는 프로그램이다.
operator를 char형으로 받고 그에 따라 switch문을 통해 연산 방식을 설정하는 것이 관건인 문제이다.
#include <stdio.h>
int main(){
int n1, n2;
char cal;
// intro
printf("SIMPLE CALCULATOR\n");
printf("Enter [number 1] [+ - * /] [number 2]\n");
scanf("%d %c %d", &n1, &cal, &n2); // input number and character from user
//print the output based on the switch
switch(cal){
case '+':
printf("%.2f + %.2f = %.2f", (float)n1, (float)n2, (float)(n1+n2));
break;
case '-':
printf("%.2f + %.2f = %.2f", (float)n1,(float)n2, (float)(n1-n2));
break;
case '*':
printf("%.2f + %.2f = %.2f", (float)n1, (float)n2, (float)(n1*n2));
break;
case '/':
printf("%.2f + %.2f = %.2f", (float)n1, (float)n2, (float)(n1/n2));
break;
}
return 0;
}
operator별 case를 잘 설정하고 int형으로 받은 숫자를 float형으로 출력하기 위해 casting을 활용하였다.
'전공 > C' 카테고리의 다른 글
과제 5 - Control Flow 2 (6 ~ 9) (0) | 2021.06.21 |
---|---|
과제 5 - Control Flow 2 (1 ~ 5) (0) | 2021.06.21 |
과제 4 - Control Flow (1 ~ 5) (0) | 2021.06.21 |
과제 3 - Data types (1 ~ 7) (0) | 2021.06.21 |
과제 2 - Operator & Binary(1 ~ 5) (0) | 2021.06.21 |