반응형
//2차원 누적합 만들기
#include<stdio.h>
int n, m, d[20][20], dt[20][20];
int main()
{
	printf("행열 곱의 값은 :");
	scanf("%d %d", &n, &m);
	printf("값을 입력하세요 :\n"); 
	
	for(int i=1; i<=n; i++)
		for(int j=1; j<=m; j++)
			scanf("%d", &d[i][j]);
	
	for(int i=1; i<=n; i++)
		for(int j=1; j<=m; j++)
			dt[i][j]=d[i][j]+dt[i-1][j]+dt[i][j-1]-dt[i-1][j-1];
	printf("누적값은 :\n");
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=m; j++)
			printf("%d ", dt[i][j]);
		printf("\n");
	}
}
/*
행열 곱의 값은 :3 4
값을 입력하세요 :
1 4 7 10
2 5 8 11
3 6 9 12
누적값은 :
1 5 12 22
3 12 27 48
6 21 45 78

--------------------------------
Process exited after 3.539 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
*/
반응형

'2019~2020 > 정보 과학' 카테고리의 다른 글

택시 거리 계산하기  (0) 2019.06.19
성적 입력하기  (0) 2019.06.19
문자shift  (2) 2019.05.31
단어 저장하기 프로그램  (0) 2019.05.29
문자개수 세기 프로그램  (0) 2019.05.29
반응형
#include<stdio.h>
#include<stdlib.h>
#include<memory.h>

typedef struct TreeNode{
	int data;
	struct TreeNode *left, *right;
}TreeNode;

TreeNode n1 = {1, NULL, NULL};
TreeNode n2 = {4, &n1, NULL};
TreeNode n3 = {16, NULL, NULL};
TreeNode n4 = {25, NULL, NULL};
TreeNode n5 = {20, &n3, &n4};
TreeNode n6 = {15, &n2, &n5};
TreeNode *root=&n6;

void inorder(TreeNode *root){ //중위 :LVR 
	if (root){
		inorder(root->left);
		printf("%3d",root->data);
		inorder(root->right);
	}
}
//1 4 15 16 20 25

void preorder(TreeNode *root){ //전위 :VLR
	if (root){
		printf("%3d",root->data);
		preorder(root->left);
		preorder(root->right);
	}	
}
//15 14 1 20 16 25

void postorder(TreeNode *root){ //후위 :LRV 
	if (root){
		postorder(root->left);
		postorder(root->right);
		printf("%3d",root->data);
	}	
}
//1 4 16 25 20 15

int main(){
	inorder(root);
	preorder(root);
	postorder(root);
	printf("\n");
	
	return 0;
}
반응형

'2019~2020 > 자료구조' 카테고리의 다른 글

이진 탐색트리  (0) 2019.06.17
별 출력 수  (0) 2019.06.14
n*n 배열에 저장하여 출력하기  (0) 2019.06.05
list3  (0) 2019.05.28
swap 함수  (0) 2019.05.21
반응형

 

#include<stdio.h>
int n,d[20][20];
int main()
{
	//가로 행 세로 열
	scanf("%d",&n);
	int i,j;
	for(i=0; i<n; i++)
		for(j=0; j<n; j++)
			scanf("%d", &d[i][j]);
	printf("정순출력:\n");		
	for(i=0; i<n; i++)  
	{
		for(j=0; j<n; j++)
			printf("%d",d[i][j]);
		printf("\n");
	}
	printf("역순출력:\n");
	for(i=n-1; i>=0; i--)  
	{
		for(j=n-1; j>=0; j--)
			printf("%d",d[i][j]);
		printf("\n");
	}
}

/*
3
9 8 7 6 5 4 3 2 1
정순출력:
987
654
321
역순출력:
123
456
789
--------------------------------
Process exited after 7.16 seconds with return value 10
계속하려면 아무 키나 누르십시오 . . .
--------------------------------
Process exited after 9.41 seconds with return value 3
계속하려면 아무 키나 누르십시오 . . .
*/
반응형

'2019~2020 > 자료구조' 카테고리의 다른 글

별 출력 수  (0) 2019.06.14
재귀 알고리즘을 사용한 이진 트리 순회  (0) 2019.06.11
list3  (0) 2019.05.28
swap 함수  (0) 2019.05.21
포인터 제 1법칙 - 2  (0) 2019.05.20
반응형
#include<stdio.h>
char s[100];
int main()
{ 
	int n,m,i;
	scanf("%d ",&n);
	scanf("%d ",&m);
 
	for(i=0; i<n; i++)
		scanf("%c", &s[i]);
	
	for(i=0; i<n; i++){
		if(s[i]>=97)
			printf("%c",(((s[i]-97)+m)%26)+97);
		else
			printf("%c",(((s[i]-65)+m)%26)+65);
	}
	printf("\n");
}
/*
5
3
aDeHz
dGhKc

--------------------------------
Process exited after 12.52 seconds with return value 10
계속하려면 아무 키나 누르십시오 . . .
*/
반응형

'2019~2020 > 정보 과학' 카테고리의 다른 글

성적 입력하기  (0) 2019.06.19
2차원 누적합 만들기  (0) 2019.06.12
단어 저장하기 프로그램  (0) 2019.05.29
문자개수 세기 프로그램  (0) 2019.05.29
c언어 숫자 맞추기게임(야구 게임)  (0) 2019.05.17
반응형
#include<stdio.h>
char s[10001];
int main() 
{
	int n;
	scanf("%d ",&n); //공백필요 
	
	for(int i=0; i<n; i++)
		scanf("%c",&s[i]);
	
	for(int i=0; i<n; i++)
		printf("%c",s[i]);
	
	printf("\n");
}
반응형

'2019~2020 > 정보 과학' 카테고리의 다른 글

2차원 누적합 만들기  (0) 2019.06.12
문자shift  (2) 2019.05.31
문자개수 세기 프로그램  (0) 2019.05.29
c언어 숫자 맞추기게임(야구 게임)  (0) 2019.05.17
소인수로 분해하기  (0) 2019.04.12
반응형
#include<stdio.h>
char s[10001];
int main() 
{
	int cnt=0;
	scanf("%s",s); 
	
	for(int i=0; s[i]!='\0'; i++)
		cnt++;

	printf("%s %d\n",s,cnt);
}
반응형

'2019~2020 > 정보 과학' 카테고리의 다른 글

문자shift  (2) 2019.05.31
단어 저장하기 프로그램  (0) 2019.05.29
c언어 숫자 맞추기게임(야구 게임)  (0) 2019.05.17
소인수로 분해하기  (0) 2019.04.12
약수의 개수 계산 프로그램  (0) 2019.04.12
반응형
// 단순 연결 리스트  
#include<stdio.h>
#include<stdlib.h>
 
typedef int element; 

typedef struct ListNode
{ 
  element data; 
  struct ListNode *link; 
}ListNode; 
 
void error(char *message){ //오류처리함수 
	fprintf(stderr,"%s\n",message);
	exit(1);
}
 
void insert_node(ListNode **phead, ListNode *p/*null */, ListNode *new_node){ //노드에 삽입 
// ** = 이중포인터- 주소의 값을 값으로 하는 연결리스트(두번 찾아감) 
// * 한개만 쓰면 밑에 함수호출에서 이상한 현상 생김 
	if(*phead == NULL){
		//연결 되지 않음  
		new_node ->link = NULL; 
		*phead=new_node; //*phead = 주소, new_mode를 *phead에 삽입 
	}
	else if(p == NULL){  
		new_node ->link = *phead; //new_node의 link를 *phead에 보관 
		*phead=new_node; ] 
	}
	else{
		new_node ->link = p->link; // p의 link를 찾아와서 연결 
		p->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); 
}
 
void display(ListNode *head){ // 리스트 출력함수 
	ListNode *p=head; 
	while(p!=NULL){ //null이 나올때까지 출력하고 따라가는 거 반복 
		printf("%d->", p->data);
		p = p->link;
	}                                              
	printf("\n"); //데이터가 순서대로 출력  
}
 
ListNode *search(ListNode *head, int x){ //리스트 탐색 함수
	ListNode *p;
	p=head;
	while(p!=NULL)
	{
		if(p->data == x)return p;
		p=p->link;
	}
	return p;
}
ListNode *concat(ListNode *head1, ListNode *head2){ //리스트 합병함수 
	ListNode *p;
	if(head1==NULL)return head2;
	else if(head2==NULL)return head1;
	else
	{
		p=head1;
		while(p->link!=NULL){
			p = p->link;
		}
		p->link=head2;
		return head1;
	}
}
 
ListNode *reverse(ListNode *head){ //리스트 역함수 
	ListNode *p,*q,*r;
	p=head;
	p=NULL;
	while(p!=NULL){
		r=q;
		q=p;
		p=p->link;
		q->link = r;
	}
	return q;
}
ListNode *create_node(element data, ListNode *link){ //노드 생성함수 
	ListNode *new_node; // 한칸의 노드 생성
	new_node = (ListNode *)malloc(sizeof(ListNode));
    //자료 형태는 ListNdoe, ListNode *= 강제형 변환 
	//malloc = 메모리 할당 -new_node에 ListNode만큼의 ListNode *형을 할당
    if(new_node == NULL)error("메모장 할당 에러\n");//메모리가 꽉 차서 할당 안됨
	new_node->data = data; // data 와 data 다름 
	// -> = 개체의 세부내용을 가르킴 (특수문자 아님) 
	new_node->link = link;
	return new_node; 
}

int main()
{
	ListNode *list1 = NULL, *list2= NULL;
	ListNode *p;
	
	insert_node(&list1, NULL, create_node(10, NULL)); 
	insert_node(&list1, NULL, create_node(20, NULL));
	insert_node(&list1, NULL, create_node(30, NULL));
	display(list1);
	
	remove_node(&list1,NULL,list1);
	
	display(list1);
	
	insert_node(&list2, NULL, create_node(40, NULL));
	insert_node(&list2, NULL, create_node(50, NULL));
	insert_node(&list2, NULL, create_node(60, NULL));
	dispaly(list2);
	
	list1 = concat(list1, list2);
	display(list1);
	
	list1 = reverse(list1);
	display(list1);
	
	p = search(list1, 50);
	printf("Search : %d\n", p->data);
	
}
반응형

'2019~2020 > 자료구조' 카테고리의 다른 글

재귀 알고리즘을 사용한 이진 트리 순회  (0) 2019.06.11
n*n 배열에 저장하여 출력하기  (0) 2019.06.05
swap 함수  (0) 2019.05.21
포인터 제 1법칙 - 2  (0) 2019.05.20
포인터 제 1 법칙 - 1  (0) 2019.05.20
반응형
include <stdio.h>
void printAB(int x, int y) 
{ 
  printf("변수 값을 순서대로 출력하면 %d, %d입니다.\n",x,y); 
} 

void swap(int a,int b) { 
  	int tmp; 
  	tmp = a; 
  	a = b; 
  	b = tmp; 
  } 

int main(){ 
    int a=2, b = 3; 
    printAB(a,b); 
    swap(a,b); 
    printAB(a,b); 
    return 0; 
} 
/* 
변수 값을 순서대로 출력하면 2, 3입니다. 
변수 값을 순서대로 출력하면 2, 3입니다. 

-------------------------------- 
Process exited after 0.0135 seconds with return value 0 
계속하려면 아무 키나 누르십시오 . . . 
*/
반응형

'2019~2020 > 자료구조' 카테고리의 다른 글

n*n 배열에 저장하여 출력하기  (0) 2019.06.05
list3  (0) 2019.05.28
포인터 제 1법칙 - 2  (0) 2019.05.20
포인터 제 1 법칙 - 1  (0) 2019.05.20
포인터 실습  (0) 2019.05.17
반응형
#include <stdio.h>

void printIntVar(char *name, int value){ 
  printf("%s\t = %d\n", name, value); 
} 

int main(){ 
    int n; 

    printf("숫자 n를 입력해 주세요 : "); 
    scanf("%d",&n); 
    printIntVar("n",n); 
    printIntVar("*&n",*&n); 
    printf("%d",&n); 
    return 0; 
} 
/* 

숫자 n를 입력해 주세요 : 275 
n        = 275 
*&n      = 275 
&n       = 6487580 

-------------------------------- 
Process exited after 4.217 seconds with return value 0 
계속하려면 아무 키나 누르십시오 . . . 
*/



반응형

'2019~2020 > 자료구조' 카테고리의 다른 글

list3  (0) 2019.05.28
swap 함수  (0) 2019.05.21
포인터 제 1 법칙 - 1  (0) 2019.05.20
포인터 실습  (0) 2019.05.17
List(리스트)  (0) 2019.05.17

+ Recent posts