[C] If you

장세민·2022년 7월 3일
0

📝 TIL

목록 보기
7/40

제어문(control statement)

프로그램의 실행 순서를 변경(제어)하는 데 사용하는 문장이다.

제어문은
예를 들어, 다음 문장을 생략하고 그 다음 문장을 실행하게 하거나,
특정 문장들을 반복해서 실행하게 할 수 있고,
반복문을 갑자기 중단하게 하는 등 여러 기능을 한다.

if문

if문을 통해 제어문을 작성할 수 있고,
만약 처리할 문장이 하나라면 본체의 {}를 생략할 수 있다.

구슬 홀짝 프로그램

구슬 개수가 홀수인지 짝수인지 판별해주는 프로그램을 만들어보자.

필요한 변수는 구슬 : marble

홀수는 1,3,5,7,9 ...
짝수는 2,4,6,8,10 ...

홀수와 짝수를 구분하는 방법은 2로 나눴을 때 나머지가 0이면 짝수이고, 그렇지 않으면 홀수이다.

이 알고리즘을 토대로 코드를 짜보면

#include<stdio.h>
 
int main()
{
	int marble;
 
	printf("손에 쥐고 있는 구슬 수는?");
	scanf("%d", &marble);
 
if (marble % 2 !=0)
 
	printf("홀수개군요.");	
 
else
 
	printf("쩍수개군요.");
 
	return 0;
}

실행해보면..

홀수 카운트 ok

짝수 카운트 ok

누가 더 많은 칼로리를 섭취했는지 구하는 프로그램

요즘 먹고 싶은 메뉴로 만들어본다.

  • 필요한 변수
    : 에그콘, 매드쉬림프, 내 칼로리, 한유빈 칼로리

  • 칼로리 계산은?
    에그콘 한 조각: 379kcal
    매드쉬림프 한 조각: 270kcal
    에그콘 조각 수*379 + 매드쉬림프 조각 수*270

#include<stdio.h>
 
int main()
{
	int egg, shrimp, semin, yubin;
 
 
	printf("세민의 에그콘 매드쉬림프 먹은 조각 수는?\n");
	scanf("%d, %d", &egg, &shrimp);
 
	semin = (egg*370) + (shrimp*270);
 
	printf("유빈의 에그콘 매드쉬림프 먹은 조각 수는?\n");
	scanf("%d, %d", &egg, &shrimp);
 
	yubin = (egg*370) + (shrimp*270);
 
 
if (semin > yubin)
 
	printf("세민이 먹은 칼로리가 더 높다.");
 
else if (semin == yubin)
 
	printf("먹은 칼로리가 같다.");
 
else
 
	printf("유빈이 먹은 칼로리가 더 높다.");
 
	return 0;
}

계속 오류가 발생했다.

?

30분동안 재시도 해봤는데,
동일한 버그가 발생해서 디버깅을 시작해봤다.

변수 egg와 shrimp에 입력을 제대로 하지 않아서 일부 변수에 더미값이 그대로 남아있었다.

콤마의 중요성

콤마 찍으니까 해결됐다.
앞으로 빼먹지 말자..

스마트폰 중독 점수(최대 4)를 확인하는 프로그램

if문을 이용해서 스마트폰 중독 점수를 확인할 수 있는 포로그램을 짜보자.

중독 점수 부여 조건
1. 스마트폰 게임을 1시간 이상 하지 않는다면
1.1 하루에 평균 2시간 이상 쉬지 않고 스마트폰 사용 -> 2점 추가

  1. 스마트폰 게임을 1시간 이상 한다면 -> 2점 추가
    2.1 게다가 하루에 평균 2시간 이상 한다면 -> 2점 추가

2.2 하루에 평균 2시간 이상 하지 않는다면
2.2.1 한 번에 4시간 이상 한 적이 있다면 -> 1점 추가

#include<stdio.h>
 
int main()
{
	int answer;
 
	printf("스마트폰으로 게임을 1시간 이상 하나요?(1. 예, 2. 아니오)");
	scanf("%d", &answer);
 
	if (answer == 1){
		printf("하루에 평균 2시간 이상 하나요?(1. 예, 2. 아니오)");
		scanf("%d", &answer);
		if  (answer == 1){
			printf("스마트폰 중독 점수는 총 4점 입니다.");
		}
		else{
			printf("한 번에 4시간 이상 한 적이 있나요?(1. 예, 2. 아니오)");
			scanf("%d", &answer);
			if (answer == 1){
				printf("스마트폰 중독 점수는 총 3점 입니다.");
			}
			else{
				printf("스마트폰 중독 점수는 총 2점 입니다.");
			}
		}
 
	}
	else if(answer == 2){
		printf("스마트폰 중독 점수는 총 0점 입니다.");
	}
}
 

나는 게임을 1시간 이상, 하루 평균 2시간 이상 하지않고, 한 번에 4시간 이상 한 적이 있으니
대입 ㄱㄱ

4점 중에 3점이다. 이제 줄일게

profile
분석하는 남자 💻

0개의 댓글