본문 바로가기

C언어_VisualStudio_실습

[C언어] 조건문 예제: 절대값 출력, 학점 프로그램

오늘은 어제 정리한 조건문의 예제 두 개를 가져와봤다. :-)

 

조건문

 

 

[문제 1]

정수 한 개를 입력받고 절댓값을 출력해보자.

*HINT! if ~ else 구문 이용

 

[풀이]
입력받을 정수를 저장할 변수를 선언하고 조건식을 적어보자. 절댓값은 크기를 나타내는 값으로 예를 들어 3의 절댓값은 크기인 3이고 -7의 절댓값은 그 크기인 7이다. 즉 양수면 양수, 음수면 양수를 출력하는 프로그램인 것이다.

 

코드는 다음과 같다.

// 절대값 출력
#include <stdio.h>

int main(void) {
	int n;	// 입력받을 정수를 저장할 변수 선언, 사용자에게 입력받기 때문에 초기화를 해도 되고 안해도 된다. 
	printf("number? ");
	scanf("%d", &n);	
	if (n >= 0) printf("absolute value: %d", n);	// 입력받은 값이 양수일 경우는 그대로 출력
	else printf("absolute value: %d", -n);	// 입력받은 값이 음수일 경우(위 조건이 거짓일 경우)는 부호를 바꿔서 출력
	return 0;
}

 

 

 

[문제 1-2]

정수 한 개를 입력 받고 절댓값을 출력해보자. 단, 조건 연산자를 이용하여 작성해보자. 

*HINT! 조건 연산자

    피연산자의 수가 세 개이기 때문에, 삼항 연산자라고도 불린다.
    if ~ else문을 간결하게 표현하는 데 사용할 수 있다.
    < 조건 연산자 문법 >
        조건? A : B 형태로 이루어짐 => 조건이 참이면 A가 반환되고, 조건이 거짓이면 B가 반환된다.

    좀 더 자세한 것은 다음 글의 두 번째 내용을 참고하자. https://cwithvisual.tistory.com/entry/%EB%85%BC%EB%A6%AC-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%A1%B0%EA%B1%B4-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%BD%A4%EB%A7%88-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%B9%84%ED%8A%B8-%EB%8B%A8%EC%9C%84-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%97%B0%EC%82%B0%EC%9E%90%EC%9D%98-%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84%EC%99%80-%EA%B2%B0%ED%95%A9-%EA%B7%9C%EC%B9%99

 

연산자 : 논리 연산자, 조건 연산자, 콤마 연산자, 비트 단위 연산자, 연산자의 우선 순위와 결합

오늘은 연산자에 대한 정리 2편!! :-) 1편은 다음을 참고! https://cwithvisual.tistory.com/entry/%EC%82%B0%EC%88%A0-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%8C%80%EC%9E%85-%EC%97%B0%EC%82%B0%EC%9E%90-%EA%B4%80%E..

cwithvisual.tistory.com

 

[풀이]
입력받을 정수를 저장할 변수 n을 선언하고 조건식을 적어보자. 이때, 조건식으로는 삼항 연산자(조건 연산자)를 이용하여 작성할 것이다. 일단 절댓값이라는 기호를 씌운다는 것은 양수는 양수로 음수는 양수로 바꾸어져 나온다는 것이다. 즉, n>=0이 참이면 n, 거짓이면 -n을 반환하는 것이다. 

 

코드는 다음과 같다.

// 절대값 출력_조건 연산자 ver.
#include <stdio.h>
int main(void) {
	int n;	// 입력받은 정수를 저장할 변수 선언 
	printf("number? ");
	scanf("%d", &n);	// 정수를 입력받는다.
	printf("absolute value: %d", (n >= 0) ? n : -n);  // 조건 연산자의 결과가 참이면 n, 거짓이면 -n을 반환
	return 0;
}

 

 

[문제 2]

이번학기 점수를 입력받고 정해진 구간에 따라 학점을 부여하는 프로그램을 작성해보자.

학점 구간은 다음과 같다.

    90점 이상이면 A학점

    80점 이상 90점 미만이면 B학점

    70점 이상 80점 미만이면 C학점

    60점 이상 70점 미만이면 D학점

    60점 미만이면 F학점

*HINT! if ~ else 구문 이용

 

[풀이]
입력받을 정수를 저장할 변수 score를 선언하고 조건식을 적어보자. 여러 조건이 나왔기 때문에 if ~ else if ~ else를 이용하여 적는다. 이때, 범위가 좁은 부분부터 쓰면 좋다. 예를 들면, if문으로 조건식 score>=90 다음에 else if문으로 조건식 score>=80를 적어주면 else if문으로 넘어왔을 때 의미가 score가 90 미만이고 80 이상인 것을 말한다. 

 

코드는 다음과 같다.

// 학점 출력 프로그램
#include <stdio.h>
int main(void) {
	int score;	// 점수를 입력받을 변수 선언
	printf("점수를 입력하세요: ");
	scanf("%d", &score);	// score에 입력받은 정수 저장
	if (score >= 90) printf("A\n");	// 90이상일 때,
	else if (score >= 80) printf("B\n");	// 90이상이 아니고(미만이고) 80 이상일 때,
	else if (score >= 70) printf("C\n");	// 위 두 경우가 아니고 (80 미만이고) 70 이상일 때,
	else if (score >= 60) printf("D\n");	// 위 세 경우가 아니고 (70 미만이고) 60 이상일 때,
	else printf("F₩n");	// 앞에 모든 조건식을 만족하지 않았을(60미만) 때,
	return 0;
}