728x90
반응형

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);  // 첫번째 반복문의 단수와 이중반복문의 곱할 수를 
                                                      // 출력해주고 곱하기 연산을 해준다.

}

}
*/

 

구구단 연산을 혼자 이중반복문의 원리를 이해하고 만들어봤는데 뿌듯했다.

 

조금씩 기본기부터 천천히 !

반응형