반응형

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
#include "stdafx.h"
int stack[100];
int top = 0;
 
int push(int value) {
    stack[top] = value; // 스택에 값을 저장
    top++// top 증가
    return top; // top 반환
}
int pop() {
    top--// top 감소
    return stack[top];  //값 반환
}
int main()
{
    push(100);
    push(200);
    push(300);
    printf("%d\n"pop());
    printf("%d\n"pop());
    printf("%d\n"pop());
 
    return 0;
}
 
cs

 

 

반응형
반응형

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
int main()
{
 
    int a = 0;
 
    while (1) {
        printf("hello");
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                if (a == 0)
                    goto stop;
            }
        }
    }
    stop:
    printf("탈출\n");
    return 0;
}
 
cs

 

// goto 문이 실행되는 순간 stop:구문으로 이동하여 탈출 한다.

출력 결과  :

 

 

반응형
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
#include "stdafx.h"
#include <stdio.h>
#include <Windows.h>
#define MAX 3
 
struct st_info {
    char name[30];
    double lang=0.0f, eng = 0.0f, math = 0.0f;
    double total = 0.0f, avg = 0.0f, rank = 0.0f;
    char grade[3];
};
int main()
{
    typedef unsigned char byte;
 
    //구조체
    st_info clsA[MAX];
    for (int i = 0; i < MAX; i++) {
        system("cls");
        printf("%d번 학생\n이름 :", i + 1);
        scanf_s("%s", clsA[i].name, sizeof(clsA[i].name));
 
        printf("국어 :");
        scanf_s("%lf"&clsA[i].lang);
    
        printf("영어 :");
        scanf_s("%lf"&clsA[i].eng);
 
        printf("수학 :");
        scanf_s("%lf"&clsA[i].math);
    
        clsA[i].total = clsA[i].lang + clsA[i].eng + clsA[i].math;
        clsA[i].avg = (clsA[i].lang + clsA[i].eng + clsA[i].math) / 3;
    
        if (clsA[i].total > 95) sprintf_s(clsA[i].grade, "A+");
        else if (clsA[i].total > 90 && clsA[i].total <=95) sprintf_s(clsA[i].grade, "A0");
        else if (clsA[i].total > 85 && clsA[i].total <= 90) sprintf_s(clsA[i].grade, "B+");
        else if (clsA[i].total > 80 && clsA[i].total <= 85) sprintf_s(clsA[i].grade, "B0");
        else if (clsA[i].total > 75 && clsA[i].total <= 80) sprintf_s(clsA[i].grade, "C+");
        else if (clsA[i].total > 70 && clsA[i].total <= 75) sprintf_s(clsA[i].grade, "C0");
        else if (clsA[i].total > 65 && clsA[i].total <= 70) sprintf_s(clsA[i].grade, "D+");
        else if (clsA[i].total > 60 && clsA[i].total <= 65) sprintf_s(clsA[i].grade, "D0");
    }
 
    printf("------------------------------------------------------\n");
    printf("이    름 | 국어 | 영어 | 수학 | 총점| 평균 | 등급\n");
    for (int i = 0; i < MAX; i++) {
        printf("%s %0.1lf %0.1lf %0.1lf %0.1lf %0.1lf %s\n", clsA[i].name, clsA[i].lang,clsA[i].eng,clsA[i].math,clsA[i].total,clsA[i].avg, clsA[i].grade);
    }
    return 0;
}
 
 
cs

출력 결과

// 이름과 국, 영, 수 점수를 scanf으로 입력 받을 수 있고, 입력된 결과를 출력 한다.

 

*과제

// 1등과 꼴지  출력하기

// 등수대로 출력하기

반응형

'Study > C' 카테고리의 다른 글

C언어(자료구조) - Stack 구현  (0) 2018.09.06
C언어 - goto문  (0) 2018.08.29
C언어 - 2차원 배열과 포인터(빙고판 출력하기)  (0) 2018.08.29
C언어 - 2차원배열 과 포인터  (0) 2018.08.29
C언어 - 이중 포인터  (0) 2018.08.29
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <random>
    using namespace std;
#define MAX 5
 
void _swap(int *a, int *b) {
        int tmp = *a;
        *= *b;
        *= tmp;
}
int main()
{
    int bingo[MAX][MAX];
    int count = 0;
    int dice = 0;
    int d1, d2, d3, d4;
    d1 = d2 = d3 = d4 = 0;
 
 
    for (int i = 0; i < MAX; i++) {
        for (int j = 0; j < MAX; j++) {
            count++;
            *(*(bingo+i)+j) = count;
        }
    }
    for (int i = 0; i < 1000; i++) {
        d1 = rand() % 5;
        d2 = rand() % 5;
        d3 = rand() % 5;
        d4 = rand() % 5;
 
        _swap((*(*bingo + d1) + d2)),(*(*bingo + d3) + d4));
    }
    while (1) {
        system("cls");
        for (int i = 0; i < MAX; i++) {
            for (int j = 0; j < MAX; j++) {
                printf("%d "*(*(bingo+i)+j));
            }
            printf("\n");
        }
        Sleep(100);
    }
    return 0;
}
cs

 

// 미완성 

 

반응형

'Study > C' 카테고리의 다른 글

C언어 - goto문  (0) 2018.08.29
C언어 - 구조체(학생 성적 구조체 만들기)  (0) 2018.08.29
C언어 - 2차원배열 과 포인터  (0) 2018.08.29
C언어 - 이중 포인터  (0) 2018.08.29
C언어 - 비트연산3 (0을 이동시키기)  (0) 2018.08.29
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
// ConsoleApplication1.cpp: 콘솔 응용 프로그램의 진입점을 정의합니다.
//
 
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main()
{
    /*
    int data[3] = {10,20,30};
    printf("data의 값 : %d\n",data); // 인덱스는 첫번째 원소의 주소이다.
    */
 
    int data[3][3]={
    { 10,20,30 },
    { 40,50,60 },
    { 70,80,90 }
    };
    printf("data : %d \n", data);
    printf("*data : %d \n"*data); // 포인터로 접근 주소값이 출력됨.
    printf("**data : %d \n"**data); // data[0][0]의 값이 출력됨
    printf("*(*data+1) : %d \n"*(*data+1)); 
    printf("**(data + 1) : %d \n"**(data + 1));
    printf("(**data + 1) : %d \n", (**data + 1));
 
 
    /* // 배열로 접근
    printf("data 의 값은 : %d \n", data);
    printf("data[0] 의 값은 : %d \n", data[0]);
    
    printf("data[0][0] 의 값은 : %d \n", &data[0][0]);
    printf("data[1] 의 값은 : %d \n", data[1]);
    printf("data[2] 의 값은 : %d \n", data[2]);
    */
    
    return 0;
}
 
 
cs

 

 

출력 결과 :

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main()
{
    int data[3][3]={
    { 10,20,30 },
    { 40,50,60 },
    { 70,80,90 }
    };
 
    printf("%d\n"*(*(data + 1+ 2));
    printf("%d\n"*(*(data + 2+ 2));
    printf("%d\n"*(*(data+2)+1));
 
    printf("%d\n"*(data[1+ 2));
    printf("%d\n"*(data[2+ 2));
 
    // 즉 *(data[1] + 2)  = *(*(data + 1) + 2) 이다
    return 0;
}
cs

출력 결과 :

 

 

 

반응형
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main()
{
    int A = 100;
    int *pA = &A;
    int **ppA = &pA;
    int ***pppA = &ppA;
 
    printf("변수 A의 값(주소) : %d (%d)\n", A, &A);
    printf("변수 pA의 값(주소) : %d (%d)\n", pA, &pA);
    printf("변수 ppA의 값(주소) : %d (%d)\n", ppA, &ppA);
 
    printf("\n\n 포인터가 가르키는곳에는? \n");
    printf("ppA가르키는 값(주소) : %d\n"*ppA);
    printf("pA가르키는 값(주소) : %d\n"*pA);
 
    return 0;
}
 
cs

 

출력결과

 

반응형
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main()
{
    unsigned char data = 0xfe;
    char str[100];
    int mode = 0;
 
    while (1) {
 
        system("cls");
        _itoa_s(data, str, 2);
        if (strlen(str) < 8) {
            for (int i = 0; i < 8 - strlen(str); i++printf("0");
        }
 
        if (mode == 0) {
            data = ~data;
            data = data << 1;
            data = ~data;
            if (data == 127)
                mode = 1;
        }
        else if (mode == 1) {
            data = ~data;
            data = data >> 1;
            data = ~data;
            if (data == 254)
                mode = 0;
        }
        printf("%s", str);
 
        
        
            
        Sleep(500);
    }
    return 0;
}
cs
반응형

'Study > C' 카테고리의 다른 글

C언어 - 2차원배열 과 포인터  (0) 2018.08.29
C언어 - 이중 포인터  (0) 2018.08.29
C언어 - 비트연산2 (1을 이동시키기)  (0) 2018.08.29
C언어 - 비트 연산  (0) 2018.08.29
C언어 - Tictactoe 게임  (0) 2018.08.28
반응형

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main()
{
    unsigned char data = 1;
    char str[100];
    int mode = 0;
 
    while (1) {
 
        system("cls");
        _itoa_s(data, str, 2);
        if (strlen(str) < 8) {
            for (int i = 0; i < 8 - strlen(str); i++printf("0");
        }
 
        if (mode == 0) {
            data = data << 1;
            if (data == 128)
                mode = 1;
        }
        else if (mode == 1) {
            data = data >> 1;
            if (data == 1)
                mode = 0;
        }
        printf("%s", str);
 
        printf("\n%d", data);
        
            
        Sleep(500);
    }
    return 0;
}
 
cs
반응형

'Study > C' 카테고리의 다른 글

C언어 - 이중 포인터  (0) 2018.08.29
C언어 - 비트연산3 (0을 이동시키기)  (0) 2018.08.29
C언어 - 비트 연산  (0) 2018.08.29
C언어 - Tictactoe 게임  (0) 2018.08.28
C언어 - 블럭 옴기기 게임  (0) 2018.08.28
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
 
int main()
{
    unsigned char data = 182;
    int bit_loc = 0;
    unsigned char bit_result = 0;
 
    while (1) {
 
        char str[100];
        _itoa_s(data, str, 2);
 
        system("cls");
        printf("%s", str);
        printf("\n몇번 비트를 확인 할 까요 ? : ");
 
        scanf_s("%d"&bit_loc);
 
        bit_result = data >> bit_loc;
        bit_result = bit_result & 0x01;
 
        
        if (bit_result) {
            data = data & (~(1 << bit_loc));
        }
        else {
            data = data | (1 << bit_loc);
        }
        // if문 수식을 3항 연산자로 간결하게 할 수 있다.
        //data = (bit_result == 1) ? data & (~(1 << bit_loc)) : data | (1 << bit_loc);
    }
    return 0;
}
 
 
cs

 

반응형

'Study > C' 카테고리의 다른 글

C언어 - 비트연산3 (0을 이동시키기)  (0) 2018.08.29
C언어 - 비트연산2 (1을 이동시키기)  (0) 2018.08.29
C언어 - Tictactoe 게임  (0) 2018.08.28
C언어 - 블럭 옴기기 게임  (0) 2018.08.28
C언어 - 배열 포인터  (0) 2018.08.28
반응형

#include "stdafx.h"
#include <stdio.h>
#include "myfunc.h"
#include <random>
using namespace std;
#include <conio.h>

#define LEFT 75
#define RIGHT 77
#define UP 72
#define DOWN 80
#define SPACE 32


int main()
{
 int board[3][3] = { 0 };
 int count = 0;
 int x = 0, y = 0;
 int inputkey = 0;
 int tmp = 0;
 

 for (int i = 0; i < 3; i++) {
  for (int j = 0; j < 3; j++) {
   count++;
   board[i][j] = count;
  }
 }
 
 while (1) {
  
  system("cls");
  
  printf(" ────────\n");
  for (int i = 0; i < 3; i++) {
   for (int j = 0; j < 3; j++) {
    setColor(BLACK, WHITE);
    printf("│");
    if (board[i][j] == 1) {
     x = i; y = j;
     setColor(RED, WHITE);
    }
    else {
     setColor(BLACK, WHITE);
    }
    printf("%2d", board[i][j]);
    setColor(BLACK, WHITE);
    printf("│");
   }
   printf("\n ────────\n");
  }
  Sleep(50);

  inputkey = _getch();

  
  

 }
 
 return 0;
}

 

// 미완성

=================================================================================================

//완성 소스

#include "pch.h"
#include "myFunc.h"
#include <stdlib.h>
#include <conio.h>
#include <random>

using namespace std;

#define MAX 3
#define LE 75
#define RI 77
#define UP 72
#define DO 80
#define SPACE 32

#define ME 0
#define COM 1

int main()
{
 random_device rn;
 mt19937_64 rnd(rn());
 uniform_int_distribution<int> range(0, MAX - 1);

 // tic-tac-toe variables
 int board[MAX][MAX] = {0,};
 int cursor_x = 0, cursor_y = 0;
 int com_x = 0, com_y = 0;
 int inputKey = 0;
 int turn = 0;
 
 while (1)
 {
  // Drawing
  system("cls");
  setColor(BLACK, WHITE);
  printf("\n  ┌───┬───┬───┐\n");
  for (int y = 0; y < MAX; y++)
  {   
   printf("  │");
   for (int x = 0; x < MAX; x++)
   {
    if (x == cursor_x && y == cursor_y)
    {
     setColor(BLACK, RED);
     if (board[y][x] == 0) printf(" ↖");
     else if (board[y][x] == 1) printf(" ○");
     else if (board[y][x] == 2) printf(" Ⅹ");
     setColor(BLACK, WHITE);
    }
    else if (board[y][x] == 0) printf("   ");
    else if (board[y][x] == 1) printf(" ○");
    else if (board[y][x] == 2) printf(" Ⅹ");
    if (x < (MAX - 1)) printf("│");
   }
   printf("│");
   if (y < (MAX - 1)) printf("\n  ├───┼───┼───┤\n");
  }
  printf("\n  └───┴───┴───┘\n");  

  // Game Checking


  // input (Player Turn)
  inputKey = _getch();
  if (inputKey == LE) cursor_x--;
  else if (inputKey == RI) cursor_x++;
  else if (inputKey == UP) cursor_y--;
  else if (inputKey == DO) cursor_y++;
  else if (inputKey == SPACE)
  {
   if (turn == ME)
   {
    if (board[cursor_y][cursor_x] == 0)
    {
     board[cursor_y][cursor_x] = 1;
     turn = COM;
    }
   }
  }

  // COM Turn
  if (turn == COM)
  {
   int comDone = 1;
   while (comDone)
   {
    com_x = range(rn);
    com_y = range(rn);
    if (board[com_y][com_x] == 0)
    {
     board[com_y][com_x] = 2;
     comDone = 0;
     turn = ME;
    }
   }   
  } 
 }
}

반응형

'Study > C' 카테고리의 다른 글

C언어 - 비트연산2 (1을 이동시키기)  (0) 2018.08.29
C언어 - 비트 연산  (0) 2018.08.29
C언어 - 블럭 옴기기 게임  (0) 2018.08.28
C언어 - 배열 포인터  (0) 2018.08.28
C언어 - 포인터 2  (0) 2018.08.28

+ Recent posts