U E D R , A S I H C RSS

새싹�실/2012/AClass/3회차

곽길문


#새싹과제.20105801 곽길문


1~5.www.koistudy.net 코�스터디 100번~104번까지 Accept받기(등업� 안�어 있으면 그 문제� 소스를 저한테 보내주세요)

-#include<stdio.h>

int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d",a+b);

return 0;


}

-#include<stdio.h>

int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d",a/b,a%b);

return 0;

}

-#include<stdio.h>

int main()
{
double a,b;
scanf("%lf %lf",&a,&b);
printf("%g ",a*b/2);

return 0;

}
-#include<stdio.h>

int main()
{
float r,c;


scanf("%f ",&r);
c=(float)r/2;
printf("%.2f ",c*c*3.14);

return 0;

}

-#include<stdio.h>

int main()
{
float n1,n2,n3;


scanf("%f %f %f",&n1,&n2,&n3);
printf("%.3f ",(float)(n1+n2+n3)/3);

return 0;

}

6.��터를 �용해 함수 swap 짜보기(대부분� 책 예제� 있습니다. 따� �보고 코드를 �해해 보세요)

-#include<stdio.h>

void swap(int *a,int *b);
int main()
{
char x='A',y='B';
printf("x= %c y=%c\n",x,y);

swap(&x,&y);
printf("x=%c ,y=%c\n",x,y);
return 0;


}
void swap(int *a,int *b)
{

int temp;
temp=*a;
*a=*b;
*b=temp;

}

7.2차� 배열(4x4) �개� 곱� 구하는 프로그램 작성.

2X2행렬� 곱� 해봤습니다

#include<stdio.h>

int main()
{
int a[]2={1,2,3,4};
int b[]2={1,2,3,4};
int c22;
int j,p,q,w,e,r;

printf("행렬� 곱\n");

for(j=0;j<2;j++){
for(p=0;b<2;p++){

if(j==0 && p==0){
q=ajp;
w=bpj;
e=ajp+1;
r=bp+1j;

}else if(j==0&& p==1){
q=ajp-1;
w=bp-1j+1;
e=ajp;
r=bpj+1;
}else if(j==1&&p==0){
q=ajp;
w=bpj-1;
e=ajp+1;
r=bpj;

}else{

q=ajp-1;
w=bp-1j;
e=ajp;
r=bpj;
}

cjp=q*w+e*r;
printf("%d",cjp);
}

printf("\n");
}


return 0;
}

8.다ì�Œ 형태로 ìœë ¥ë�˜ëŠ” 프로그램ì�„ ì§œ 보세요.

1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25

#include<stdio.h>
int main()
{
int a[]5={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};
int c55;
int j,p;

for(j=0;j<5;j++){
for(p=0;p<5;p++){

printf("%d", cjp);
p++;

}
printf("\n");
j++;
}


return 0;
}

9.��터를 �용한 예제코드 하나를 짜 보세요.

#include<stdio.h>
int main()
{

int num=2;
int *a;
a=#
printf("%d\n",*a);
return 0;

}

//'0'ì�´ ìœë ¥ë�œë‹¤.


10.LinearSearch를 구현해보세요. 배열� 1000개로 잡고, random함수를 �용해 1부터 1000까지� 숫�를 랜�으로 배열� 넣� 후, 777� 배열내� 있었는지를 찾으면 �니다. 프로그램� 실행시킬 때마다 결과가 달�지겠죠?

(rand()%1000� 한다면 1�서 1000까지� 숫�가 나올 것입니다.)

-linear search란 리스트� 처�부터 하나씩 비�하여 찾아가는 선형�색� �한다.

짧� 예제를 공부해서 가려합니다

#include<stdio..h>
int Lsearch(int ar[], int len, int targer)
{
int i;
for(i=0;i

if(ari ==targer)
return 1;
}

return -1;

}

int main(){


int arr[]={3,5,2,4,9};
int idx;
idx=Lsearch(arr,sizeof(arr)/sizeof(int),4);

if(idx== -1)
printf("search fail\n");
else
printf("%d\n",idx);
idx = Lsearch(arr,sizeof(arr)/sizeof(int),7);

if(idx ==-1)
printf("search fail\n");
else
printf("%d\n",idx);
return 0;

}


11.Sort를 하나 구현해보세요. 11번과 ê°™ì�€ 방법으로 숫ìž�를 ëžœë�¤ìœ¼ë¡œ ë„£ì�€ 후, 정렬하고, ì •ë ¬ë�œ 것ì�„ ìœë ¥í•˜ë©´ ë�©ë‹ˆë‹¤.
- u.u

12.�번시간� 배웠� 내용� 바탕으로, int* a; int b;로 선언했�때 &a,a,*a,&b,b� 관해서 �� 설명하고, 어떤 것� 어떤 것과 �치하는 것�지를 �해할 수 있�� 쉬운�로 정리해보세요.(예제 코드를 작성한 후� 테스트해보고 �보는 것� 좋� 방법� 것입니다.)

- *a가 b를 가리키는 ��터� 선언 �었다면, &a는 a� 주소값, a는 메모리 안� 있는 값(즉, b� 주소값-��터� 정�), &b는 b� 주소값, b는 메모리 안� 있는 값(할당한 값),a=&b와 같다. 둘다 b� 주소값� 나타낸다.*a=b와 같고 b� 할당한 값과 같다.

편집1.4.1.2 예습 ¶
1.구조체가 무엇�지 알아보고, 간단한 구조체 하나를 만들어보세요.
- 다른 종류� ��터를 하나로 묶어서 사용하는 ��터 결합법� 구조체�고 한다. 구조체는 같� �료형� 묶어서 한다면 구조체는 다른 �료형� 묶어 사용한다.

#include<stdio.h>

struct Student
{

int id;
int age;
char *name;

};

int main()
{
struct Student stu;

stu.id =1001;
stu.age=10;
stu.name ="kim so ri";

printf("id : %d\n",stu.id);
printf("age : %d\n",stu.age);
printf("name : %s\n",stu.name);

return 0;
}

2.��할당� 무엇�지 알아보고, ��할당� 하는 방법� � 보세요.

-��할당 malloc� 대해.....
molloc� 함수가 �하는 역활� 우리가 �하는 �기� �료를 메모리� 할당하고 그 주소값� 다시 ��려 주는 역활�다.
입력값� �하는 �기, 리턴값� 메모리 주소�다..

하는 방법 =
��터 변수 = (��터� �료형 )malloc(�하는 �료�기);

ex..

arr = (int *)malloc(sizeof(int)*nSize); // malloc으로 nSize만� int 형 배열� �성

mallocì�„ 한 후ì—�는 freeì�„ 호ìœí•´ì„œ 메모리ì—� 할당하였ë�˜ 것ì�„ 풀어주어야 한다. 그렇지 않으면 메모리ì—� 남겨서 필요할때 사용할수가 없다.

3.�중��터가 무엇�지 알아보고, �중 ��터를 �용해 2차� 배열형태로 만들어보세요.

- ��터� 주소를 가리키는 ��터를 �중��터�고 한다.

#include <stdio.h>
#include <stdlib.h>

void main()
{
int **ptr;
int i,j,k=1;
//int ptr22;

ptr = (int **)malloc(2*sizeof(int *));
for(i=0;i<2;i++)
ptri = (int *)malloc(2*sizeof(int));

for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
ptrij = k;
printf("%d ",ptrij);
k++;
}
puts("");
}
}

//솔�히 예제 �해가 잘 안가요 ㅜ

4.스�, �가 무엇�지 설명하고, �를 �용한 간단한 예제를 만들어보세요.

-스íƒ�ì�´ëž€ 후입선ìœë°©ì‹�ì�˜ ìž�료구조, í��는 ì„ ìž…ì„ ìœë°©ì‹�으로 처ì�Œìœ¼ë¡œ 들어갔ë�˜ 것ì�´ 맨 먼저 꺼낼수 있는 ë°©ì‹�ì�´ë‹¤.

#include<stdio.h>
#define MaxSize 3
int stackMaxSize;

int sp=0;
int push(int);
int pop(int *);

int main(){

int n=0;
push(10);
push(20);
push(30);
if (push(40) == -1)
{

printf("Stack Overflow\n");

}
pop(&n);
printf("pop : %d\n",n);

pop(&n);
printf("pop : %d\n",n);

pop(&n);
printf("pop : %d\n",n);

if(pop(&n) == -1)
{
printf("Stack Underflow\n");

}
return 0;
}


int push(int n)
{
if(sp<MaxSize)
{
stacksp=n;
sp++;
return 0;

}else
{
return -1; // 가� 찾�때 overflow
}

}

int pop(int *n)
{
if(sp>0) //값� 있� 때
{
sp--;
*n=stacksp;
return 0;

}else
{
return -1; //비었� 때. underflow

}
}

// pop으로 ë�°ì�´í„°ë¥¼ ì¶”ìœí• ë•Œ 마지막ì—� 들어간 30부터 나오게 ë�œë‹¤.



-� 예제
#include<stdio.h>
#include<conio.h>
#define MAX 5

int queue5;
int rear = 0;
int front = 0 ;

void insert(int vall)
{
queuerear++ = vall;
}

void Delete()
{
if(rear < 0 )
printf("��� 비울 �가 없�");
else
--rear;
}


void main()
{
int insert_num;
int i,j;
for(i=0; i<5; i++)
{
printf("숫�를 입력하세요");
scanf("%d", &insert_num);
insert(insert_num);
}

for(j=0; j
printf("%d " ,queuej); printf("\n");
}

for(j = front ; j < 5; j++){ //엔터를 한번씩 누르면 값� 차례대로 빠�
getch();
Delete();
printf("delete를 실행했습니다");
printf("%d\n", queuej);
}
}

���


1~5.www.koistudy.net 코�스터디 100번~104번까지 Accept받기(등업� 안�어 있으면 그 문제� 소스를 저한테 보내주세요)



6.��터를 �용해 함수 swap 짜보기(대부분� 책 예제� 있습니다. 따� �보고 코드를 �해해 보세요)
-06.c


7.2차� 배열(4x4) �개� 곱� 구하는 프로그램 작성.
-07.c


8.다ì�Œ 형태로 ìœë ¥ë�˜ëŠ” 프로그램ì�„ ì§œ 보세요.
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
-배열로 하는건지 아니면 for문� 몇 개를 �야하는 건지 ㅜ,ㅜ


9.��터를 �용한 예제코드 하나를 짜 보세요.
-09.c


10.LinearSearch를 구현해보세요. 배열� 1000개로 잡고, random함수를 �용해 1부터 1000까지� 숫�를 랜�으로 배열� 넣� 후, 777� 배열내� 있었는지를 찾으면 �니다. 프로그램� 실행시킬 때마다 결과가 달�지겠죠?
(rand()%1000� 한다면 1�서 1000까지� 숫�가 나올 것입니다.)
-10.c


11.Sort를 하나 구현해보세요. 11번과 ê°™ì�€ 방법으로 숫ìž�를 ëžœë�¤ìœ¼ë¡œ ë„£ì�€ 후, 정렬하고, ì •ë ¬ë�œ 것ì�„ ìœë ¥í•˜ë©´ ë�©ë‹ˆë‹¤.
-11.c


12.�번시간� 배웠� 내용� 바탕으로, int* a; int b;로 선언했�때 &a,a,*a,&b,b� 관해서 �� 설명하고, 어떤 것� 어떤 것과 �치하는 것�지를 �해할 수 있�� 쉬운�로 정리해보세요.(예제 코드를 작성한 후� 테스트해보고 �보는 것� 좋� 방법� 것입니다.)
int* a;
int b=10;
a=&b;
printf("%d\n",&a); //��터 변수 a� 주소
printf("%d\n",a); //a가 가리키고 있는 주소값
printf("%d\n",&b); //b� 주소값
printf("%d\n",b); //b� 들어있는 값


1.구조체가 무엇�지 알아보고, 간단한 구조체 하나를 만들어보세요.
구조체란 하나 ��� 변수를 그룹 지어서 새로운 �료형� 정�하는 것�다.
a_01.c


2.��할당� 무엇�지 알아보고, ��할당� 하는 방법� � 보세요.
‘힙’� 메모리를 할당하는 것� �고 �� 할당 �� 한다.
프로그램� 실행�는 �안� 할당해야 하는 메모리� �기를 결정지� 수 있기 때문�다.
-a_02.c
->아� �해가 잘 안�ㅠ.ㅠ


3.�중��터가 무엇�지 알아보고, �중 ��터를 �용해 2차� 배열형태로 만들어보세요.
�중 ��터는 싱글 ��터� 주소 값� 저장하기 위한 용�로 사용�는 ��터�다.
a_03.c


4.스�, �가 무엇�지 설명하고, �를 �용한 간단한 예제를 만들어보세요.
스íƒ� – ë�°ì�´í„° ìž…/ìœë ¥ì�´ 한쪽으로만 ì ‘ê·¼ í•  수 있는 ìž�료 구조. 가장 나중ì—� 들어간 ë�°ì•„타가 ì œì�¼ 먼저 나오게 ë�œë‹¤.
� – 먼저 넣� ��터가 먼저 나오는 FIFO구조. 스�과 반대�는 개�� �료구조.
->(예제는 어떻게 만들어야 �지 잘 모르겠�!ㅜ.ㅜ)

한송�


1 100)
#include<stdio.h>
int main(){
int a,b;
scanf("%d",&a);
scanf("%d",&b);

printf("%d",a+b);

return 0;
}


2 101)
#include <stdio.h>

int main()
{
int a,b,c,d;

scanf("%d %d",&a,&b);
c=a/b;
d=a%b;
printf("%d %d",c,d);

return 0;
}



3 102)
#include <stdio.h>

int main()
{
int u,h;
double s;


scanf("%d %d", &u,&h);
s = (u*h)/2.0;
printf("%g",s);

return 0;
}


4 103)
#include <stdio.h>

int main()
{
int R;
double s,r ;

scanf("%d", &R);
r=R/2.0;
s = 3.14*r*r;
printf("%.2lf",s);

return 0;
}



5 104)
#include <stdio.h>

int main()
{
int a,b,c;
double ave ;

scanf("%d %d %d", &a, &b, &c);
ave = (float)(a + b + c) / 3.0;
printf("%.3lf",ave);
return 0;
}


6 105)
#include<stdio.h>
int main(){
double a,b,c,d;

scanf("%lf",&a);
scanf("%lf",&b);
scanf("%lf",&c);

d=-(b/a);
printf("%g",d);
return 0;
}


7.��터를 �용해 함수 swap 짜보기(대부분� 책 예제� 있습니다. 따� �보고 코드를 �해해 보세요)

#include <stdio.h>

void point(int *pval1 , int *pval2)
{
int temp;

temp = *pval1;
  • pval1=*pval2;
  • pval2= temp;

}

void main()
{
int val1;
int val2;


val1=10;
val2=20;

printf("%d %d \n" , val1, val2);
point(&val1, &val2);

printf("%d %d \n" , val1, val2);
}



8.2차� 배열(4x4) �개� 곱� 구하는 프로그램 작성.
#include <stdio.h>
int main()
{
int a44,b44,c44,d44={0},i,j,k,l;
printf("배öe열¯¡© a 입O력¤A : ");
for(i=0; i<4; i++) //a배öe열¯¡© 입O력¤A
{
for(j=0; j<4; j++)
scanf("%d",&aij);
}
printf("배öe열¯¡© b 입O력¤A : ");
for(i=0; i<4; i++) //b배öe열¯¡© 입O력¤A
{
for(j=0; j<4; j++)
scanf("%d",&bij);
}


for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
{
for(k=0; k<4; k++)
{
for(k=0; k<4; l++)
{
dij += aij*bkj*ckl; <<<�부분 어떻게 해야할지 잘 모르겠어요
}
}
}
}
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
{
printf("%4d ",dij); <<여기�요
}
printf("\n");
}
return 0;
}



9.다ì�Œ 형태로 ìœë ¥ë�˜ëŠ” 프로그램ì�„ ì§œ 보세요.
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25


#include <stdio.h>
int main()
{
int arr55 = {0,};
int i, j, k=1;

for(i=0; i<5; i++)
{
if(i%2==0)
{
for(j=0; j<5; j++)
arrij = k++;
}
else
{
for(j=4; j>=0; j--)
arrij = k++;
}
}
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
printf("%3d", arrij);
printf("\n");
}

return 0;
}




10.��터를 �용한 예제코드 하나를 짜 보세요.
#include<stdio.h>
int main(){
char ch;
char *p;
char *q;

ch = 'A';
p = &ch;

q = p;
  • p = 'Z';

  • printf("ch가Æ¢® 가Æ¢®지o고Æi 있O는¥A 값ƨ£ : ch=> %c\n",ch);

    }
    11.LinearSearch를 구현해보세요. 배열� 1000개로 잡고, random함수를 �용해 1부터 1000까지� 숫�를 랜�으로 배열� 넣� 후, 777� 배열내� 있었는지를 찾으면 �니다. 프로그램� 실행시킬 때마다 결과가 달�지겠죠?
    (rand()%1000� 한다면 1�서 1000까지� 숫�가 나올 것입니다.)



    12.Sort를 하나 구현해보세요. 11번과 ê°™ì�€ 방법으로 숫ìž�를 ëžœë�¤ìœ¼ë¡œ ë„£ì�€ 후, 정렬하고, ì •ë ¬ë�œ 것ì�„ ìœë ¥í•˜ë©´ ë�©ë‹ˆë‹¤.



    13.�번시간� 배웠� 내용� 바탕으로, int* a; int b;로 선언했�때 &a,a,*a,&b,b� 관해서 �� 설명하고, 어떤 것� 어떤 것과 �치하는 것�지를 �해할 수 있�� 쉬운�로 정리해보세요.(예제 코드를 작성한 후� 테스트해보고 �보는 것� 좋� 방법� 것입니다.)
    &a : a� 주소
    *a : a� 주소가 가르키는 실제값, a� 들어있는 값
    &b : b� 주소
    *b : b� 주소가 가르키는 실제값, b� 들어있는 값

    *a = b
    *b = a



    1.4.1.2 예습 ¶
    1.구조체가 무엇�지 알아보고, 간단한 구조체 하나를 만들어보세요.
    구조체 : 서로 다른 종류� ��터를 저장하기 위한 여러 �료형 변수들� 집합
    #include<stdio.h>
    int main(){
    struct student{
    char name10;
    int age;
    };
    struct student s={"한N송ùU�I",23};
    printf("�I름¬¡× : %s\n",s.name);
    printf("나ø¨£�I : %d\n",s.age);

    return 0;
    }
    2.��할당� 무엇�지 알아보고, ��할당� 하는 방법� � 보세요.
    �� 할당� 하는 �유 : 메모리를 절약하기 위해
    �� 할당� 가장 기번�으로 사용�는 것� malloc함수�고, � 함수를 사용하기 위해서는 "stdlib.h"헤�파�� �함해야 한다
    ��터 변수 = (��터� �료형 종류)malloc(�하는 �료�기);

    3.�중��터가 무엇�지 알아보고, �중 ��터를 �용해 2차� 배열형태로 만들어보세요.
    �중��터 : ��터 변수를 가르키는 ��터
    �중��터 사용�유
    : ��터형 변수가 가지고 있는 주소를 다른 지역�서 컨트롤 (바꾸기 ) 위해 !
    (��터를 체�지 하는게 아니� 주소를 체�지)
    �중��터 선언 방법
    Int **p;


    4.스�, �가 무엇�지 설명하고, �를 �용한 간단한 예제를 만들어보세요.
    스� : �료를 여러개를 넣었다가 나중� 사용하려고 할 때�는 나중� 넣� 것� 먼저 나오는 구조
    í��(Queue) : 프로그램 언어ì—�서 ë³´ë©´ ìž�료 구조ì�˜ 한 형태로 순차 목ë¡�ì�˜ 한 형태를 뜻합니다. ì›�소ì�˜ 삽입ì�€ ë’¤(rear)ì—�서 ì�´ë£¨ì–´ì§€ê³  삭제는 앞(front)ì—�서 ì�´ë£¨ì–´ì§€ëŠ” ìž�료 구조를 뜻합니다. 메모리ì—� ì �용할 경우 í��는 ì„ ìž…ì„ ìœ ë°©ì‹�ì�„ 뜻합니다.

    황혜림



    12.�번시간� 배웠� 내용� 바탕으로, int* a; int b;로 선언했�때 &a,a,*a,&b,b� 관해서 �� 설명하고, 어떤 것� 어떤 것과 �치하는 것�지를 �해할 수 있�� 쉬운�로 정리해보세요.(예제 코드를 작성한 후� 테스트해보고 �보는 것� 좋� 방법� 것입니다.)
    a : a� 들어있는 값
    &a : a� 주소
    *a : a가 가르키는 변수� 값
    &b : b� 주소
    b : b� 들어있는 값


    1.4.1.2 예습

    1.구조체가 무엇�지 알아보고, 간단한 구조체 하나를 만들어보세요.
    - 다른 종류� ��터를 하나로 묶어서 사용 하는 ��터 결합법
    struct Student
    {
    int id;
    int age;
    char* name;
    };
    2.��할당� 무엇�지 알아보고, ��할당� 하는 방법� � 보세요.
    - 필요한 만�� 메모리를 �접 ��으로 관리 할 수 ��� 해주는 함수�다.
    int* pTmp=malloc(100);
    int* pTmp=(int*)malloc(100);
    3.�중��터가 무엇�지 알아보고, �중 ��터를 �용해 2차� 배열형태로 만들어보세요.
    - ��터� 주소를 가르키는 ��터

    4.스�, �가 무엇�지 설명하고, �를 �용한 간단한 예제를 만들어보세요.
    스íƒ� : LIFO(후입선ìœ) ìž�료를 나중ì—� ë„£ì�€ 것ì�´ 먼저 나오는 ìž�료구조
    í�� : FIFO(ì„ ìž…ì„ ìœ) 먼저 ë„£ì�€ ìž�료가 먼저 나오는 ìž�료구조


    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2021-02-07 05:29:45
    Processing time 0.0258 sec