전과자의 울며 코딩 먹기 1일차

전과자·2023년 9월 16일
0

C / C++

목록 보기
1/2
post-thumbnail

디자인을 공부하던 문예창작학과 학생의 컴퓨터공학과 전과...
전과자의 코딩 공부... 시작합니다

Hello, World!부터 시작해서 변수, 자료형, sizeof 연산자와 형변환, 입력 받기, char형과 ASCII 코드까지 공부 후 처음으로 문제를 풀어보았는데요...

1. 두 숫자를 입력받아서 그 숫자들의 합을 출력하는 프로그램을 만들어 보세요.

#include <stdio.h>

int main() {

	int a; int b;

	printf("두 숫자를 입력하세요.\n");
	scanf_s("%d %d", &a, &b);

	printf("%d", a + b);
}

2. 체중(kg, 실수)과 키(m, 실수)를 입력받아서 체질량 지수를 구하는 프로그램을 만들어 보세요.

#include <stdio.h>

int main() {
	float weight;
	float height;

	printf("체중 입력(kg) : ");
	scanf_s("%f", &weight);

	printf("키 입력(m) : ");
	scanf_s("%f", &height);


	printf("BMI : %f", weight / (height * height));
}

3. 알파벳을 입력받아서 그 다음 알파벳을 출력하는 프로그램을 만들어 보세요. (Z 제외)

#include <stdio.h>

/*int main() {
	char a;
	printf("알파벳 입력(Z 제외) : ");
	scanf_s("%c", &a);
	
	int b = a + 1;
	printf("다음 알파벳 : %c\n", b, b);
}*/

int main() {
	char alpabet;
	scanf_s("%c", &alpabet);

	char nextalpabet = alpabet + 1;
	printf("%c", nextalpabet);
}

3번은 풀이가 두 개...

여기서부터는 배우면서 예제 풀어 본 내용

  • 변수로 연산하기
// 산술연산자 : 수학적인 연산
// + - * / % =
// += -= *= /= %=
// ++ --

#include <stdio.h>

int main() {
	int a = 5;
	printf("a는 원래 %d였다...\n", a);
	a = a + 3; // = : 대입 연산
	printf("3을 더했더니 %d가 됐다...\n", a);
// += -= *= /= %=

#include <stdio.h>

int main() {
	int a = 5;

	a += 6; // a = a + 6;과 같다
	
	a *= 7; // a = a * 7;
	a -= 6; // a = a - 6;
	a %= 7; // a = a % 7;
	printf("%d\n", a);

}
// ++ --

#include <stdio.h>

int main() {
	int a = 10;
	printf("원래 a는 %d이었다...\n", a);
	a++; // a = a + 1
	     // a += 1;
	printf("1 증가해서 %d이 됐다...\n", a);
	a--; // a = a - 1
	     // a -= 1;
	printf("1 감소해서 %d이 됐다...\n", a);
}
// 전치와 후치

#include <stdio.h>

// 전치
/*int main() {
	int a = 10;
	int b;

	printf("=== 전치 증가 연산 ===\n");
	b = ++a; // a에 먼저 1을 증가시키고, b에 a를 대입해라 
	printf("a : %d\n", a);
	printf("b : %d\n", b);
}*/

// 후치
int main() {
	int a = 10;
	int b;

	printf("=== 후치 증가 연산===\n");
	b = a++; // b에 먼저 a 값을 저장하고, a에 1을 증가시켜라 
	printf("a : %d\n", a);
	printf("b : %d\n", b);
}
// 비교 연산자, 논리 연산자

#include <stdio.h>

int main() {

	int a, b;
	scanf_s("%d%d", &a, &b);

	// bool : 진리값 저장용 변수 (1바이트)
	bool p = a > b;
	bool q = a < b;
	bool r = a == b; // == : 같다

	// a >= b : a는 b보다 크거나 같다
	// a <= b : a는 b보다 작거나 같다
	// a != b : a는 b가 아니다

	printf("%d\n", p);
	printf("%d\n", q);
	printf("%d\n", r);

	// 2 > 3 = 거짓
	// 참: 1, 거짓: 0
}
// 논리 연산자 (그리고, 또는...)
// && : 그리고
// || : 또는
// ! : ~가 아니다 (참을 거짓으로, 거짓을 참으로 바꿔주는 연산자)

#include <stdio.h>

int main() {
	int a;
	scanf_s("%d", &a);

	bool p = (a >= 1) && (a <= 10); // 1 <= a <= 10과 같은 의미
	bool q = a == 3 || a == 7;
	bool r = !q;

	printf("%d\n", p);
	printf("%d\n", q);
	printf("%d\n", r);
}
  • 경우 나누기(if, else if, else)
#include <stdio.h>

int main() {
	int n;
	scanf_s("%d", &n);

	if (n % 2 == 0) {
		printf("n은 짝수\n");
	}
	else {
		printf("n은 홀수\n");
	}
}
#include <stdio.h>

int main() {
	// 참: 1, 거짓: 0

	if (0) {
		printf("***\n");
	}
	else {
		printf("$$$\n");
	}

}
#include <stdio.h>

int main() {
	int n;
	scanf_s("%d", &n);

	if (n > 0) {
		printf("n은 양수\n");
	}
	else if (n == 0) {
		printf("n은 0\n");
	}
	else if (n == -7) {
		printf("n은 -7\n");
	}
	else {
		printf("n은 -7이 아닌 음수\n");
	}
}
  • if문
// 중첩 if문
// 중괄호 코딩 스타일

#include <stdio.h>

int main() {
	int a, b, c;

	scanf_s("%d%d%d", &a, &b, &c);

	if (a > b) {
		// a > b > c
		// a > c > b
		// c > a > b
		if (a > c)
			printf("%d\n", a);
		else // c > a
			printf("%d\n", c);
	}
	else { // b > a
		if (b > c)
			printf("%d\n", b);
		else // c > b
			printf("%d\n", c);
	}
}
  • switch와 go to문
// switch

#include <stdio.h>

int main() {

	int choice;

	makeChoice:

	printf("새 게임 : 1\n");
	printf("불러오기 : 2\n");
	printf("설정 : 3\n");
	printf("크레딧 : 4\n");

	scanf_s("%d", &choice);

	switch (choice) {
	case 1:
		printf("새 게임을 시작합니다.\n");
		break;

	case 2:
		printf("저장한 파일을 불러옵니다.\n");
		break;

	case 3:
		printf("설정을 변경합니다.\n");
		break;
		
	case 4:
		printf("크레딧\n");
		break;

	default:
		printf("잘못 입력하셨습니다.\n");
		// go to
		goto makeChoice;
		break;
	}
}
#include <stdio.h>

int main() {
	int i = 1;

	repeat:
	printf("%d\n", i);
	if (i < 10) {
		i++;
		goto repeat;
	}
}
  • 반복문(while)
#include <stdio.h>

int main() {

	int i = 1;
	while (i <= 10) {
		printf("%d\n", i);
		i++;
	}
}

[do-while]

#include <stdio.h>
int main() {
	int i = 14;

	do {
		printf("%d\n", i);
		i++;
	} while (i <= 10);
}

[무한 반복(true)]

#include <stdio.h>

int main() {
	int i = 1;

	while (true) {
		printf("%d ", i);
			i++;
	}
}

[응용 예제]
0을 입력할 때까지 반복해서 제발 0을 입력해 달라고 말하고, 입력하면 감사합니다!!!! 라는 문장이 나오는 프로그램

#include <stdio.h>

int main() {
	int n;

	do {
		printf("제발 0을 입력해 주세요 ㅠㅠ\n");
		scanf_s("%d", &n);
	} while (n != 0);
	printf("감사합니다!!!!\n");
}
  • for문
    // 일정하게 증가/감소되는 변수가 필요할 때
    // 배열의 모든 원소에 순차적으로 접근하고 싶을 때
    // 특정 횟수만큼 작업을 반복하고 싶을 때
#include <stdio.h>

int main() {

	int i;
	for (i = 1; i <= 10; i++) {
		printf("%d\n", i);
	}
}
#include <stdio.h>

int main() {

	int n;
	scanf_s("%d", &n);

	for (int i = 1; i <= n; i *= 2) {
		printf("%d\n", i);
	}
}
#include <stdio.h>

int main() {
	// 1~n까지 숫자의 합을 출력

	int n;
	scanf_s("%d", &n);

	int sum = 0;
	for (int i = 1; i <= n; i++) {
		sum += i;
	}

	printf("%d\n", sum);

}
#include <stdio.h>

int main() {
	int n;
	scanf_s("%d", &n);

	for (int i = 1; i <= n; i++) {
		printf("*");
	}
}

여기까지 1일차였습니다...

profile
literally changed major...

0개의 댓글