#include<stdio.h>
void printIntVar(char *name, int value){
printf("%s\t = %d\n", name, value);
}
int main()
{
int one = 1;
int *to_one;
to_one = &one;
printIntVar("one", one);
*to_one = one + 1;
printIntVar("one", one);
*to_one = *to_one + 1;
printIntVar("one", one);
(*to_one)++;
printIntVar("one" ,one);
return 0;
}
2019~2020
- 포인터 제 1 법칙 - 1 2019.05.20
- 포인터 실습 2019.05.17
- List(리스트) 2019.05.17
- c언어 숫자 맞추기게임(야구 게임) 2019.05.17
- Queue 2019.05.13
- 소인수로 분해하기 2019.04.12
- 약수의 개수 계산 프로그램 2019.04.12
- 계절 출력하기 2019.04.10
- 양수 만들기 2019.04.10
- 스택 함수 2019.04.09
포인터 제 1 법칙 - 1
포인터 실습
#include<stdio.h>
int main()
{
int num = 10; //정수형 변수 선언
int *p; // 정수형 포인터 선언
p = # // 포인터가 num 변수의 주소값을 가리킴
printf("%d\n",&num); //포인터가 가리키는 변수의 주소 출력
printf("%d\n",p); // 포인터가 가리키는 변수의 주소 출력
printf("%d\n",*p); // 포인터가 가리키는 변수의 값 출력
printf("%d\n",&p); // 포인터 변수의 주소 출력 (주소가 달라짐 6487580의 위치주소 값
}
'2019~2020 > 자료구조' 카테고리의 다른 글
포인터 제 1법칙 - 2 (0) | 2019.05.20 |
---|---|
포인터 제 1 법칙 - 1 (0) | 2019.05.20 |
List(리스트) (0) | 2019.05.17 |
Queue (0) | 2019.05.13 |
스택 함수 (0) | 2019.04.09 |
List(리스트)
typedef int element;
typedef struct ListNode{
element date;
struct ListNode *link;
}ListNode;
ListNode *pl;
pl = (ListNode *)malloc( sizeof(ListNode));
void insert_node(ListNode *phead, ListNode *p,ListNode *new_node);
{
if(phead==NULL)
{
new_nod->link = NULL;
phead = new_node;
}
else if(p == NULL)
{
new_node->link = phead;
phead = new_node;
}
else
{
new_nod->link =p1->link:;
p1->link = new_node;
}
}
void remove_node(ListNode phead, ListNode *p, ListNode *removed);
{
if(p == NULL)
phead = (phead)->link;
else
p->link = removed->link;
free(removed);
}
'2019~2020 > 자료구조' 카테고리의 다른 글
포인터 제 1 법칙 - 1 (0) | 2019.05.20 |
---|---|
포인터 실습 (0) | 2019.05.17 |
Queue (0) | 2019.05.13 |
스택 함수 (0) | 2019.04.09 |
함수를 이용한 팩토리얼 실습 (0) | 2019.04.08 |
c언어 숫자 맞추기게임(야구 게임)
#include <stdio.h>
#include <stdlib.h>
int main()
{
srand(time(NULL));
int num1, num2, num3;
num1=rand()%10;
do{num2=rand()%10; }while(num2==num1);
do{num3=rand()%10; }while(num3==num2||num3==num1);
int cnt=0;
int strike, ball;
do
{
if(cnt>=7)break;
strike=0,ball=0;
int input;
scanf("%d", &input);
if(input>=1000||input<100)
{
printf("input3-digit numbers\n");
continue;
}
int d1, d2, d3;
d1=input/100;
d2=(input%100)/10;
d3=input%10;
cnt++;
if(d1==d2||d2==d3||d1==d3)
{
printf("%d count : number overlap\n",cnt);
continue;
}
if(num1==d1)strike++;
else if(num1==d2||num1==d3)ball+=1;
if(num2==d2)strike++;
else if(num2==d1||num2==d3)ball+=1;
if(num3==d3)strike++;
else if(num3==d1||num3==d2)ball+=1;
printf("%d count : %d Strike, %d Ball\n", cnt, strike, ball);
}while(strike!=3);
if(cnt>=10)
printf("Fall! 당신은 바보 입니까? Answer Number : %d%d%d", num1, num2, num3);
else
printf("SUCCESS! 당신은 천재..!! Try count : %d",cnt);
return 0;
}
'2019~2020 > 정보 과학' 카테고리의 다른 글
단어 저장하기 프로그램 (0) | 2019.05.29 |
---|---|
문자개수 세기 프로그램 (0) | 2019.05.29 |
소인수로 분해하기 (0) | 2019.04.12 |
약수의 개수 계산 프로그램 (0) | 2019.04.12 |
계절 출력하기 (0) | 2019.04.10 |
Queue
#include<stdio.h>
#include<sidlib.h>
#define MAX_SIZE 10
// 큐를 구조체로 선언
typedef int element;
typedef struct{
element queue[MAX_SIZE];
int front, rear;
} QueueType;
// 포화 상태, 공백상태 error 처리
void error(char *message){
fprintf(stderr,"%s\n",message);
exit(1);
}
// 초기화 함수
void init(QueueType *q){
q->front = q->rear = 0;
}
// 삽입함수
void enqueue(QueueType *q, element item){
if((q->rear+1)%MAX_SIZE == q->front)
error("큐가 포화 상태입니다");
q->rear = (q->rear+1) % MAX_SIZE;
q->queue[q->rear] = item;
}
//삭제 함수
element dequeue(QueueType *q){
if(q->front == q->rear)
error("큐가 공백 상태입니다");
q->front = (q->front + 1)%MAX_SIZE;
return q->queue[q->front];
}
int main() {
QueueType q;
init(&q); //item이 queue인데 q안에 queue 안에 배열 item = q.queue[q.front]
printf("\nitem=%d\n",q.queue[q.front]);
printf("front=%d\n",q.front);
printf("rear=%d\n",q.rear);
enqueue(&q,99);
printf("\nitem=%d\n",q.queue[q.front+1]);
printf("front=%d\n",q.front);
printf("rear=%d\n",q.rear);
enqueue(&q,88);
enqueue(&q,77);
enqueue(&q,66);
printf("\nitem=%d\n",q.queue[q.rear]);
printf("front=%d\n",q.front);
printf("rear=%d\n",q.rear);
enqueue(&q,55);
enqueue(&q,44);
enqueue(&q,33);
enqueue(&q,22);
enqueue(&q,11);
printf("\nitem=%d\n",q.queue[q.rear]);
printf("front=%d\n",q.front);
printf("rear=%d\n",q.rear);
dequeue(&q);
printf("\nitem=%d\n",q.queue[q.front]);
printf("front=%d\n",q.front);
printf("rear=%d\n",q.rear);
enqueue(&q,98);
printf("\nitem=%d\n",q.queue[q.rear]);
printf("front=%d\n",q.front);
printf("rear=%d\n",q.rear);
dequeue(&q);
dequeue(&q);
dequeue(&q);
dequeue(&q);
dequeue(&q);
dequeue(&q);
dequeue(&q);
dequeue(&q);
dequeue(&q);
printf("\nitem=%d\n",q.queue[q.front]);
printf("front=%d\n",q.front);
printf("rear=%d\n",q.rear);
}
/*
item=1
front=0
rear=0
item=99
front=0
rear=1
item=66
front=0
rear=4
item=11
front=0
rear=9
item=99
front=1
rear=9
item=98
front=1
rear=0
item=98
front=0
rear=0
--------------------------------
Process exited after 0.02195 seconds with return value 7
계속하려면 아무 키나 누르십시오 . . .
*/
소인수로 분해하기
#include<stdio.h>
int i,n;
int main()
{
scanf("%d",&n);
i=2;
do
{
if(n%i==0)
{
printf("%d",i);
n/=i;
}
else
i++;
}
while(i<=n);
printf("\n");
}
/*
15120
222233357
--------------------------------
Process exited after 3.408 seconds with return value 10
계속하려면 아무 키나 누르십시오 . . .
*/
'2019~2020 > 정보 과학' 카테고리의 다른 글
문자개수 세기 프로그램 (0) | 2019.05.29 |
---|---|
c언어 숫자 맞추기게임(야구 게임) (0) | 2019.05.17 |
약수의 개수 계산 프로그램 (0) | 2019.04.12 |
계절 출력하기 (0) | 2019.04.10 |
양수 만들기 (0) | 2019.04.10 |
약수의 개수 계산 프로그램
#include
int n, cut, i;
int main()
{
scanf("%d",&n);
i=1;
while(i<=n)
{
if(n%i==0)
cut+=1;
i++;
}
printf("%d의 약수의 개수는 %d입니다.", n,cut);
}
/*
100
100의 약수의 개수는 9입니다.
--------------------------------
Process exited after 2.565 seconds with return value 28
계속하려면 아무 키나 누르십시오 . . .
*/
'2019~2020 > 정보 과학' 카테고리의 다른 글
c언어 숫자 맞추기게임(야구 게임) (0) | 2019.05.17 |
---|---|
소인수로 분해하기 (0) | 2019.04.12 |
계절 출력하기 (0) | 2019.04.10 |
양수 만들기 (0) | 2019.04.10 |
scanf() 함수로 문자 읽기1 (0) | 2019.03.29 |
계절 출력하기
#include
int s;
int main()
{
scanf("%d", &s);
switch(s)
{
case 12:case 1: case 2:
printf("winter\n"); break;
case 3:case 4: case 5:
printf("winter\n"); break;
case 6:case 7: case 8:
printf("winter\n"); break;
default:
printf("fall\n");
}
}
/*
12
winter
--------------------------------
Process exited after 1.495 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
*/
'2019~2020 > 정보 과학' 카테고리의 다른 글
소인수로 분해하기 (0) | 2019.04.12 |
---|---|
약수의 개수 계산 프로그램 (0) | 2019.04.12 |
양수 만들기 (0) | 2019.04.10 |
scanf() 함수로 문자 읽기1 (0) | 2019.03.29 |
printf() 함수 실습 (0) | 2019.03.29 |
양수 만들기
#include
long long n;
int main()
{
scanf("%lld", &n);
if(n<0)
n=-n;
printf("%lld", n);
}
/*
-2147483648
2147483648
--------------------------------
Process exited after 25.56 seconds with return value 10
계속하려면 아무 키나 누르십시오 . . .
*/
'2019~2020 > 정보 과학' 카테고리의 다른 글
약수의 개수 계산 프로그램 (0) | 2019.04.12 |
---|---|
계절 출력하기 (0) | 2019.04.10 |
scanf() 함수로 문자 읽기1 (0) | 2019.03.29 |
printf() 함수 실습 (0) | 2019.03.29 |
비트 연산자 실습 (0) | 2019.03.27 |
스택 함수
#include<stdio.h>
#define STACK_SIZE 5 // 스택의 사이즈를 5로 정의
typedef int element; // int형을 스택 element의 자료형으로
element stack[STACK_SIZE]; // 자료 형 element를 저장할 수 있는 공간을 스택 사이즈만큼
int top=-1; // 스택의 초기 값을 -1로 저장하여 공백상태로
void push(element item);
element pop();
element peek();
int main()
{
peek();
pop();
push(99);
printf("입력된 스택 %d\n",peek());
push(99);
printf("입력된 스택 %d\n",peek());
push(88);
printf("입력된 스택 %d\n",peek());
push(77);
printf("입력된 스택 %d\n",peek());
push(55);
printf("입력된 스택 %d\n",peek());
push(44);
printf("출력 스택 %d\n",pop());
printf("출력 스택 %d\n",pop());
printf("출력 스택 %d\n",pop());
printf("출력 스택 %d\n",pop());
printf("출력 스택 %d\n",pop());
printf("출력 스택 %d\n",pop());
}
void push(element item) // 스택의 삽입 연산 item = "C"
{
if(top >= STACK_SIZE-1) // 스택이 이미 FULL 상태인 경우
{
printf("Stack is Full!\n");
return;
}
else stack[++top]=item;
}
element pop() // 스택의 삭제 연산, pop은 꺼내다
{
if(top == -1){
printf("Stack is Empty!!\n");
return 0;
}
else return stack[top--]; // 반환 값은 top이 가리키는 값이고 top 포인터는 1개 감소
}
element peek() // 스택의 조회연산
{
if(top == -1)
{
printf("Stack is Empty!!\n");
return 0;
}
else return stack[top]; // 반환값은 top이 가리키는 값이고, top 포인터는 변함 없음
}
/*
Stack is Empty!!
Stack is Empty!! // 꺼낼 거 X
입력된 스택 99
입력된 스택 88
입력된 스택 77
입력된 스택 66
입력된 스택 55
Stack is Full! // 스택의 범위를 벗어남
출력 스택 55 // 맨위에 있는 값
출력 스택 66
출력 스택 77
출력 스택 88
출력 스택 99
Stack is Empty!! // 꺼낼 거 X
출력 스택 0 // 0을 되돌려줌
--------------------------------
Process exited after 0.01508 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
*/
'2019~2020 > 자료구조' 카테고리의 다른 글
List(리스트) (0) | 2019.05.17 |
---|---|
Queue (0) | 2019.05.13 |
함수를 이용한 팩토리얼 실습 (0) | 2019.04.08 |
square 함수 (0) | 2019.04.08 |
가장 큰 키, 가장 작은 키, 평균 구하기 (0) | 2019.04.05 |