1. 오류발생 - 예외 발생(0x7bd9ef8c(ucrtbased.dll), project1.exe): 0xc0000005: 0x00700000 위치를 기록하는 동안 액세스 위반이 발생했습니다.. 뒤에 0xc000 ..등등은 메모리개념. 나중에 배운다. 간단히 그렇다는 것만 알고 다음에 공부하자.
#include <stdio.h>
int main(void) // 한 프로젝트에 메인이 2개가 있어서 오류가 발생. 그전 메인을 다른 이름으로 정의해준다.
2. ++ 연산
{
// 뿔뿔 (++) = x = x + 1
//int a = 10;
//printf("%d \n", a);
//
//a++; // a는 10이라는 숫자가 정의되어있다. a++은 정의된 숫자에 1를 + 해준다.
//
//
//printf("%d \n", a); // 값은 11이라는 숫자가 출력된다
//
//a++;
//printf("%d \n", a); // 여기는 12
/*int b = 11;
printf("%d \n", b); // ++이 먼저오는 ++b는 앞의 ++을 먼저 수행을하라는 의미
++b;
printf("%d \n", b); // 따라서 11이 위의 printf문에서 출력이되고
//여기서는 12가 출력 그리고 ++을 뒤에 해줬으니 다음으로 넘어가서 연산하라는 의미
b++;
printf("%d\n", b); // 여기서는 13이 출력이 된다.
& 문제
int c = 20;
printf("%d \n", ++c); // ++이 먼저 왔으니 연산 먼저하라는 의미니까 21
printf("%d \n", c++); // : ++이 뒤에 왔으니 다음 출력때 연산하라는 의미니까 여기도 21
printf("%d \n", c); */ // 여기서는 앞에 연산된 값이 더해져 22가 출력
// 답 : 20, 21, 22
// 위 개념은 반복문에서 자주 사용하기때문에 익숙해져야한다. 실수할 수 있는 부분.
// * ++이 먼저오면 먼저 연산을하라는 의미 ++이 뒤에오면 다음에 연산하라는 의미 *
// --------------------------------------------------------------------------------------------------------
3. 반복문
// for , while, do while
// for (선언; 조건; ,증감) {} -> " ; " 세미콜론과 " , " 콤마를 위치에 잘 입력해야 오류가 안난다.
이 간단한 코드에서 오류가 발생했다..
이유는 "세미콜론"
이래서 코드 강의는 굉장히 집중해서 들어야한다.
선언; 조건; 증감 어느 명령문에 세미콜론이 붙는지 확인 안하고 대강 듣구
"아 쉽네~ 간단하네~ 작성해보자~" 했다가
오류가 발생했다.. 뭐가 문제인지 한번 혼자 해결해보겠다고 찾다가 계속 오류가 발생해서
강의를 다시 돌려보니... 아주 사소한 실수로 오류가 난걸 확인했다.. 기분이 참..^^ 그랬다...
근데 아직 while 은 왜 ()하고 ; 를 안하는지는 의문이다.. printf는 (""); 인데 while왜지..?? 명령문이 달라서 그런가..?
어쨌든.. 그런 노래도 있지 않나.. "님"이라는 글자에~ 점하나를~ 찍으면~ "남"이 된다고
컴퓨터도 점하나에 남이 될 수 있다
/*for (int i = 1; i <= 10; i++) // 1이 10보다 작거나 같을때까지 i를 ++해줘라는 의미.
{
printf("Hello World %d \n", i);
// i 가 10 보다 작거나 같을때까지 출력이 되고 10보다 커지게되면 출력이 멈춘다.
}*/
// while (조건) { } / 조건이 끝날 동안 출력을 해라
/*int i = 1; // while 문에서는 for문과 달리 선언을 while문 위에 해주면 된다.
while (i<=10) // 조건에 for문과 달리 " ; " 가 없다.
{
printf("Hello World %d\n", i++); // i++은 문장의 괄호안에 입력해도 되고
// i++; // 밖에 입력해도 된다.
}*/
// do { } while (조건) ; -> do 다음 큰괄호 { } while문과 달리 조건이 끝나면 " ; " 입력!!!!
/*int i = 1;
do {
printf("Hello World %d\n", i++);
} while (i <= 10);
*/
// 2중 반복문 ***** - 별표 다섯개
/*for (int i = 1; i <= 3; i++)
{
printf("첫 번째 반복문 : %d\n", i);
for (int j = 1; j <= 5; j++)
{
printf(" 두번째 반복문 : %d\n", j);
}
}
*/
// 2중 반복문은 먼저 입력된 for문을 반복 수행하면서 두번째 입력된 for문을 반복하는 첫번째 for문에 출력한다는 의미.
/* 정리하자면
첫번째 for문이 3번!! 출력되도록 정의가 되어있으니 3번!! 출력되는 동안 두번째 반복문은
첫번째 for문이 출력 될때마다!! 이중으로 같이 출력된다!!
1-1 첫번째 for문 : 두번째 for문 (1,2,3,4,5)
1-2 첫번째 for문 : 두번째 for문 (1,2,3,4,5)
1-3 첫번째 for문 : 두번째 for문 (1,2,3,4,5)
*/
& 문제
// ============= 구구단 연산 만들어보기 ===============
/*for (int i = 1; i <= 9; i++) // 1. 첫번째 반복문에 9까지 출력하라고 조건을 준다.
{
printf("\n%d단의 구구단을 외자! 구구단을 외자! \n\n", i ); // 첫번째 반복문이 9번 즉 9단까지 출력될테니,
// 각 단을 알려주는 문장을 출력해준다.
for (int j = 1; j <= 9; j++) // 이중반복문으로 곱할 수를 조건으로 준다.
{ // 구구단은 9단까지 9를 곱하는 것이니 9까지 준다.
printf("%d * %d = %d \n", i, j, i*j); // 첫번째 반복문의 단수와 이중반복문의 곱할 수를
// 출력해주고 곱하기 연산을 해준다.
}
}
*/
구구단 연산을 혼자 이중반복문의 원리를 이해하고 만들어봤는데 뿌듯했다.
조금씩 기본기부터 천천히 !
'C 언어' 카테고리의 다른 글
#5 이중반복문 예시 거꾸로별과 피라미드 (0) | 2023.01.17 |
---|---|
23年 1月 16일 마음에도 솔직해지는 용기 (0) | 2023.01.16 |
#4 알고는 치자 ! (0) | 2023.01.16 |
#3 이중 반복문 -2 (별피라미드) (0) | 2023.01.15 |
#1 Pirntf , Scanf, const, float, double (0) | 2023.01.13 |