130814.8일차

|

헤더

#include <stdio.h>

#define SIZE 5

#define ROWS 3

#define COLS 7


#define ROW 3

#define COL 4


void disp( char * [] );

int disp( char *  );

void disp( char  (*ap)[COLS] );

void disp( char * name[] , int (*score)[COL] , double * avg );

void total( int (*score)[COL] ) ;

void average( int (*score)[COL] , double * avg  );


메인

#include "130814.h"



/*

void main()

{

// 숙제 1

// 문자열 세개를 함수로 출력한다

// 단 %c 만 사용해서 출력한다.

// 포인터 배열 둘 다 표현


char * ap[SIZE] = { "apple" , "banana" , "pear" };

disp(ap);


// 숙제 2

// 문자열을 한번 출력하고 그 개수도 출력한다.

// 포인터 배열 둘 다 표현


printf("개수 : %d\n\n", disp("Hello World!") );


}


*/




// 2차원 배열과 포인터 -2차 포인터


/*

void main()

{

char ap[ROWS][COLS] = { "apple" , "banana" , "pear" };



// a p p l e ㅁ

// b a n a n a

// p e a r ㅁㅁ

//

// 3행 7열 방

//

// 직사각형 모양이 아니고 실제로는 막대기에 차례차례 입력되어있다

// a p p l e \o ㅁ b a n a n a \o p e a r \o ㅁ ㅁ 

// banana의 b 는 ap[0][8] 으로도 인식됨

// ap[0]은 21개의 1차원 배열의 시작점으로 인식 

// ap[1]은 14개의 1차원 배열의 시작점으로 인식 

// ap[2]은  7개의 1차원 배열의 시작점으로 인식

//

// ap 만 유일하게 자기가 2차원 배열이라고 생각함

// ( 2중 포인터 ) 몇칸씩 띄는지 알려줘야함.


  


for ( int i=0 ; i<ROWS ; i++ ) {

for ( int j=0 ; j<COLS ; j++ ) {

printf("%c",ap[i][j]);

}

printf("\n");

}


for ( int i=0 ; i<ROWS*COLS ; i++ ) {

printf("%c", *(*ap+i) );

}

printf("\n");




//char **bp = ap; //안됨

char ( * bp )[COLS] = ap; // 2차 포인터



disp(ap);


}


*/




/* 


//예제


void main() 

{

char * name[ROW] = { "이순신" , "김유신" , "홍길동" };

int score[ROW][COL] = { {68,60,78} , {85,56,89} , {65,63,44} };

double avg[ROW] = {0};


// name score avg

// 0 0 1 2 3 0

// 0 "이순신" 68 60 79 0

// 1 "김유신" 85 56 87 0

// 2 "홍길동" 65 63 44 0



total(score);

average(score, avg);

disp(name, score, avg);

}


*/




/*


구조체 STRUCT


서로 다른 자료형의 모임 (새로운 자료형 설계 )

레코드라고도 한다 

( char int char double 이러한 순으로 되어있는 자료형 입력 가능)

( 문자 숫자 포인터 다 입력 가능 )

( 구조체도 자료형 취급됨 )

선언시 멤버에 초기값을 줄 수 없다



구조체를 만들때는 첫글자를 대문자로 만들자.


struct 구조체명

{

자료형 변수 : // 멤버변수

자료형 변수 : // 멤버변수

      // 멤버변수

}




*/


/*

typedef struct Score {

int kor;

int eng;


} Jumsu; // 항상 main위에 쓰고 마지막에는 ; 쓴다


void main()

{

// int나 char 대신 새로운 자료형 Score를 쓰고 변수 선언

Score kim = { 10 , 20 }; // kim 이라는 배열의 값

// 방크기가 같다는 가정이 성립안됨

// typedef struct Score Gu;


printf("국어 : %d\n", kim.kor);

printf("영어 : %d\n", kim.eng);

kim.kor += 20;

kim.eng += 20;

printf("국어 : %d\n", kim.kor);

printf("영어 : %d\n", kim.eng);


// 구조체 교환

// 한번에 작업 할 수 있다는 구조체의 장점 이용


Jumsu lee = { 60 , 70 };

Jumsu temp;


temp = kim;

kim = lee;

lee = temp;


printf("kim 국어 : %d\n", kim.kor);

printf("kim 영어 : %d\n", kim.eng);

printf("lee 국어 : %d\n", lee.kor);

printf("lee 영어 : %d\n", lee.eng);




// 구조체 배열

Score m[2] = { {10,20} , {30,40} };

// 배열출력

printf("%d\n",m[0].kor);

printf("%d\n",m[0].eng);

printf("%d\n",m[1].kor);

printf("%d\n",m[1].eng);

// 포인터 출력

printf("m[%d] kor : %d\n",0, (*(m+0)).kor);

printf("m[%d] eng : %d\n",0, (*(m+0)).eng);

printf("m[%d] kor : %d\n",1, (*(m+1)).kor);

printf("m[%d] eng : %d\n",1, (*(m+1)).eng);


// 화살표 (점까지 화살표로 쓴다)

// 제일 편함

printf("m[%d] kor → %d\n",0, (m+0)->kor);

printf("m[%d] eng → %d\n",0, (m+0)->eng);

printf("m[%d] kor → %d\n",1, (m+1)->kor);

printf("m[%d] eng → %d\n",1, (m+1)->eng);

// 주소값 사용

Score * mp = m;

printf("m[1].KOR : %d\n",mp[1].kor );

printf("m[1].KOR : %d\n",(*(mp+1)).kor );

printf("m[1].KOR : %d\n",(mp+1)->kor );

}


*/








// 구조체와 함수 ★★★★★



/*


// 헤더

struct Score

{

char name[12];

int kor, eng, mat, tot;

double avg;

}; 


void disp( Score kim ) ;

//Score calc( Score kim ) ; // call by value

void calc( Score * ap ) ; // call by address

void calc( Score & ar ) ; // call by reference


// 메인

void main()

{

Score kim = { "홍길동" , 67 , 75 , 81 };

// kim = calc(kim);// call by value

// calc( &kim ); // call by address (return 안해도됨)

calc(kim); // call by reference

disp(kim); 


}




// 함수


//   call by reference

void calc( Score & ar ) {

ar.tot=ar.kor+ar.eng+ar.mat;

ar.avg=ar.tot/3.;

}


//   call by address

void calc( Score * ap ) {

ap->tot = ap->kor + ap->eng + ap->mat;

ap->avg = ap->tot/3.;

}


//     call by value - Score calc( Score kim ) ;

Score calc( Score kim ) {

kim.tot=kim.kor+kim.eng+kim.mat;

kim.avg=kim.tot/3.;

return kim;



}


void disp( Score kim ) {

printf("이름 : %s\n", kim.name);

printf("국어 : %d\t영어 : %d\t수학 : %d\t", kim.kor, kim.eng, kim.mat);

printf("총점 : %d\t평균 : %.2lf\n", kim.tot, kim.avg);

}


*/




// 예제


//헤더


struct Score

{

char name[20];

int kor, eng, mat, tot;

double avg;

char grade; // 학점

int rank; // 석차

};

void disp( Score * ap );

void calc( Score * ap );

void rate( Score * ap );

void ranking( Score * ap );

void sort( Score * ap );




// 메인

void main()

{

Score m[SIZE] = {

{"Kim" , 90, 83, 75} , {"Lee" , 100, 95, 100} , 

{"Choi", 82, 75, 70} , {"Park", 45, 32, 63} , 

{"Shin", 43, 65, 85} };


calc(m); // 총점, 평균 계산

rate(m); // 학점 계산(평균 90이상 A, 80이상 B .....)

ranking(m); // 등수 계산

sort(m); // 등수로 오름차순 정렬

disp(m); // 출력


printf("\n");


}


// 함수


//   call by address


void calc( Score * ap ) {

for ( int i=0; i<SIZE ; i++){ 

(ap+i)->tot = (ap+i)->kor + (ap+i)->eng + (ap+i)->mat;

(ap+i)->avg = (ap+i)->tot/3.;

}

}



void rate( Score * ap ) {

for ( int i=0; i<SIZE ; i++){ 

if ( (ap+i)->avg <= 100 && (ap+i)->avg >= 0 ) {

switch( int((ap+i)->avg)/10 ) {

case 10 :(ap+i)->grade='A'; break;

case 9 : (ap+i)->grade='A'; break;

case 8 : (ap+i)->grade='B'; break;

case 7 : (ap+i)->grade='C'; break;

case 6 : (ap+i)->grade='D'; break;

default : (ap+i)->grade='F';

} // switch

} // if

} // for

} // void


void ranking( Score * ap ) { //Score (&ap)[SIZE]

for ( int i=0; i<SIZE ; i++){ 

(ap+i)->rank=1; // (ap+i).rank=1

for ( int j=0; j<SIZE ; j++){  

if ( (ap+i)->avg < (ap+j)->avg ) (ap+i)->rank++;

}

}

}



void sort( Score * ap ) {

Score a;


for ( int i=0 ; i<SIZE-1 ; i++ ) {

for ( int j=i+1 ; j<SIZE ; j++ ) {

if ( (ap+i)->rank > (ap+j)->rank ) {

//a=ap[i];

//ap[i]=ap[j];

//ap[j]=a;

a=*(ap+i);

*(ap+i)=*(ap+j);

*(ap+j)=a;

}

}

}


void disp( Score * ap ) {

printf("이름\t국어\t영어\t수학\t총점\t평균\t학점\t석차\n");

int i;

for ( i=0 ; i<SIZE ; i++ ){

printf("%s\t%d\t%d\t%d\t%d\t%.2lf\t%c\t%d\n",

(ap+i)->name,(ap+i)->kor,(ap+i)->eng,

(ap+i)->mat,(ap+i)->tot,(ap+i)->avg,

  (ap+i)->grade,(ap+i)->rank );

}

}


함수

#include "130814.h"




void disp( char * ap[] ) {

printf("배열이용\n");

for ( int i=0 ; i<SIZE ; i++ ) {

int j=0;

do {

printf("%c", ap[i][j] );

j++;

} while ( ap[i][j] != NULL) ;

printf("\n");

}

printf("\n");


printf("포인터이용\n");


for ( int i=0 ; i<SIZE ; i++ ) {

int j=0;

do {

printf("%c", *(*(ap+i)+j) );

j++;

} while (*(*(ap+i)+j) != NULL) ;

printf("\n");

}


printf("\n");


}



int disp( char * ap ) {


printf("%s\n",ap);

int j=0;

do {

j++;

//} while ( ap[j] != NULL) ; // 배열 이용

} while ( *(ap+j) != NULL) ; // 포인터 이용

return j;

}


void disp( char (*ap)[COLS] ) {

for ( int i=0 ; i<ROWS ; i++ ) {

for ( int j=0 ; j<COLS ; j++ ) {

printf("%c",ap[i][j]);

}

printf("\n");

}


printf("\n");

}



// ( char * ap[] ) = ( char (*ap)[COLS] )   배열 얻기



void total( int (*score)[COL] ) {


for ( int i=0 ; i<ROW ; i++ ) {

for ( int j=0 ; j<COL-1 ; j++ ) {

score[i][COL-1]+=score[i][j];

// *(*(score+i)+COL-1) += *(*(score+i)+j)

}

}

}


void average( int (*score)[COL] , double * avg  ) {

for ( int i=0 ; i<ROW ; i++ ) {

avg[i]=score[i][COL-1]/double(COL-1);

}

}




void disp( char * name[] , int (*score)[COL] , double * avg ){


printf("이름\t국어\t영어\t수학\t총점\t평균\n");

for ( int i=0 ; i<ROW ; i++ ) {

printf("%s\t",*(name+i));

for ( int j=0 ; j<COL ; j++ ) {

printf("%d\t", *(*(score+i)+j) );

}

//printf("%.2lf", *(avg+i) );

printf("%.2lf", avg[i] );

printf("\n");

}


printf("\n");


}



저작자 표시 비영리 변경 금지
신고

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

130819.10일차  (0) 2013.08.22
130816.9일차  (0) 2013.08.19
130814.8일차  (0) 2013.08.19
130813.7일차  (0) 2013.08.19
130812.6일차  (0) 2013.08.19
130809.5일차  (0) 2013.08.19
Trackback 0 And Comment 0

130813.7일차

|

헤더

#include <stdio.h>

#define NUM 3


void fibo( int a );

int input( );

void output( int n );

//void disp( int a , double b , char c); // 에러안남 

  void disp( int   , double   , char  ); // (선언부는 변수명 생락가능)

//void disp( int * ap , double * bp , char * cp); // 에러안남

  void disp( int *    , double *    , char *   ); 


  

//void swap( int a , int b );

void swap( int * ap , int * bp );

void disp( int & aa , double & bb );

void swap( int & , int & );

int sum( int * );

double avg( int  [] );



//숙제

void disp( char * []);

메인


#include "130813.h"



/*


// 피보나치 수열

void main() {

int a;

printf("정수 : ");

scanf("%d", &a);

fibo(a); // 입력받은 값까지의 피보나치 수열 출력





// 숙제 1

// 정수 한 개를 입력 받아서 구구단을 출력한다

// 2~9 사이 값이면 구구단 출력

// 아니면 다시 입력 받는다/

// input() 함수에서 입력받고

// output() 함수에서 출력한다.

 

output(input(1));

}


*/







/*


포인터


자료형에 상관없이 크기는 4Byte

선언시 자료형은 참조하는 곳의 데이터 자료형

주소를 얻을때는 &(변수) // ap=&a (a방의 주소를 ap에 넣어라)

데이터를 얻을 때는 *(포인터변수) // *ap a의 데이터를 가져와라


이중포인터

삼중포인터


포인터는 방의 시작주소


포인터의 주소를 모두 알 수 없기 때문에

포인터를 저장 하는 포인터 변수를 만들어 주어야 한다.

a라는 자료에는 int a로 들어가지만 포인터에는 int* ap;로 선언하자


int* double* char* 전부 4Byte이다. 

(주소는 전부 32비트. 자료형이랑 주소랑 관계 없음)

궂이 자료형을 붙여주는 이유는 주소지에 있는 자료의 자료형을 지시해줌

포인트 방의 용도는 다른방을 가르키는 용도이다. 



주소를 16진수로 표시하면 8자리가 나옴 32bit/4bit=8자리


*/




/*

void main()

{

int a = 5;

int * ap = &a; // a의 주소를 ap에 포인터로 입력


printf("a의 값 : %d\n",a); // a의 자료 출력

printf("a의 값 : %d\n",*ap); // ap의 주소에 있는 자료 출력

printf("a의 주소 : %p\n",&a); // a의 주소를 16진수로 출력

printf("a의 주소 : %p\n",ap); // ap의 자료(a방의 주소)를 16진수로 출력

//double * bp = &a; // a는 int 인데 double이라는 방의 주소를 쓸 수 없다






// 이중 포인터

// a=5(의 주소는 100, ap), ap의 주소를 자장한 bp(200)

// int ** bp;

// bp = &ap;



int ** bp = &ap; 

//int ** bp = &&a; // 이딴거 안됨

printf("a의 값 : %d\n",**bp);

printf("a의 주소 : %p\n",*bp);


}


*/





// 함수와 포인터



/*

void main()

{

int a=10;

double b=43.77;

char c='A';



int * ap = &a;

double * bp = &b;

char * cp = &c;


disp(a,b,c); // Call by Value

disp(&a, &b, &c); // Call by Address (추가로 Call by Reference도 있음)


// 함수 정보를 쓸땐 call by address 써야 에러가 안남

}


*/




// 주소로 함수를 부르지 않았을 경우 오류

/*

void main()

{

int a=5,b=2;

printf("메인 교환 전 a : %d\t b : %d\n", a, b);

//swap(a,b); // call by value 메인 출력 : (5,2)

//swap(&a,&b); // call by address 메인 출력 : (2,5)

swap(a,b); // call by reference

printf("메인 교환 후 a : %d\t b : %d\n", a, b);


// 함수교환은 function의 지역변수에서'만' 바꾸고 교환하고 출력함 

// 항상 주소로 불러줘야함

}


*/


// Call by Reference

/*

void main()

{

int a=10;

double b=25.7;


// int & b=a; // 방에 이름하나 더 붙여라


int & aa=a; // 기존에 a라는 방의 이름을 참조하라

aa=20; // aa의 값을 바꿔줘도 a의 값이 바뀐다.

printf("%d\n",a);

printf("%d\n",aa);


disp(a,b); // call by reference(&)

  // main은 a라 부르고 reference는 aa라고 부른다.

}

*/





// 1차원 배열과 포인터


/*

#define SIZE 3


void main()

{

int m[SIZE] = { 10, 20, 30 };


// 4가지 방법으로 출력

// 엄밀히 말하면 배열은 포인터

// 1차원 배열은 포인터 2차원 배열은 2중 포인터


// ★★★★★


/////////////////////////////////////////////////////////////////////////////////////

///// /////

///// 데이터: 10 20 30 /////

///// 값 : m[0] m[1] m[2] /////

///// 주소 : &m[0] &m[1] &m[2] /////

///// 100 104 108 // 4Byte 씩 차이나야함 /////

///// (mp=&m) mp mp+1 mp+2 /////

///// 값 : *mp *(mp+1) *(mp+2) /////

///// 주소 : m m+1 m+2 // 이거도 된다 /////

///// 값 : *m *(m+1) *(m+2) // 이거도 된다 /////

///// mp[0] mp[1] mp[2] // 포인터 변수로 데이터 사용 /////

///// 주소 : &mp[0] &mp[1] &mp[2] // /////

///// /////

/////////////////////////////////////////////////////////////////////////////////////


//  m++ 쓰지말자 ( 배열을 통채로 들어내서 한칸 옮기라는말, 집을 통채로 옆으로 이동)

//  mp++ 사용 가능


int i;

for (i=0; i<SIZE ; i++) {

printf("m[%d] 값 : %d\n", i, m[i]);

printf("m[%d] 주소 : %p\n", i, &m[i]);

}

printf("\n");


int * mp = &m[0];

for (i=0; i<SIZE ; i++) {

printf("m[%d] 값 : %d\n", i, *(mp+i) );

printf("m[%d] 주소 : %p\n", i, mp+i);

}

printf("\n");


//printf("%p\n",m); // 첫번째 배열 시작값이랑 같다 

 // 배열의 이름은 맨앞의 시작주소를 갖는다.



for (i=0; i<SIZE ; i++) {

printf("m[%d] 값 : %d\n", i, *(m+i) );

printf("m[%d] 주소 : %p\n", i, m+i);

}

printf("\n");


for (i=0; i<SIZE ; i++) {

printf("m[%d] 값 : %d\n", i, mp[i] );

printf("m[%d] 주소 : %p\n", i, &mp[i]);

}




printf("\n");


for (i=0; i<SIZE ; i++) {

printf("m[%d] 주소 : %p\n", i, mp++);

}


printf("\n");


for (i=0; i<SIZE ; i++) {

printf("m[%d] 값 : %d\n", i, *mp++); // 안됨

}

}


*/




// 예제

/*

void main()

{

int m[]={ 45, 56, 34, 47, 64};

printf("합계 : %d\n", sum(m) );

printf("합계 : %.2lf\n", avg(m) );

}




// header는 ( int * ) = ( int [] ) 로 쓰자


*/







// 이중 포인터


/*

#define SIZE 3


void main()

{

char * ap[SIZE] = { "apple", "banana", "pear" };

// 100  300 500

//  ap[*] : {100,300,500}

//

// a p p l e \0

//  b a n a n a \0

//  p e a r \0

//

//  바나나 만큼 방(7개)을 잡아줘야 한다

//  charater 포인터 배열로 만들자(포인터가 들어갈 방이 3개)

// 문자는 어딘가에 저장되어있고 그 시작 주소만 저장함


int i;


for ( i=0 ; i<SIZE ; i++ ) {

printf("%s\n",*(ap+i) ); // = ap[i]

}

printf("%c\n", *(ap+1)+2 ); // banana의 n 출력


// 3번째에만 있는 p,n,a 찍기

for ( i=0 ; i<SIZE ; i++ ) {

printf("%c\n", *(*(ap+i)+2) );

printf("%c\n", ap[i][2] );

}


}


*/



// 숙제 1

// 문자열 세개를 함수로 출력한다

// 단 %c 만 사용해서 출력한다.

// 포인터 배열 둘 다 표현


void main()

{

char * ap[NUM] = { "apple", "banana", "pear" };


disp(ap);

}





// 숙제 2

// 문자열을 한번 출력하고 그 개수도 출력한다.

// 포인터 배열 둘 다 표현

//void main()

//{

// printf("개수 : %d\n", disp("Hello World!") );

//}


함수


#include "130813.h"

#define NUM 3


// 피보나치 수열

void fibo( int a) {

int n1=1, n2=1;

int n3;

printf("피보나치 수열 값 : ");

if (a==1) printf("%d",n1);

  else if (a==2) printf("%d %d",n1,n2);

else {

printf("%d %d ",n1,n2);

for ( int i=0 ; i<a-2 ; i++) {

n3=n1+n2;

n1=n2;

n2=n3;



printf("%d ",n3);

} // for

} // else

printf("\n\n");

} // void





int input( ) {

int n;

printf("단 입력 : ");

scanf("%d",&n);

while (1){

if ( n<= 9 && n >= 2) return n;

else { 

printf("다시 입력 : ");

scanf("%d",&n);

}

}

}



void output( int n ) {

printf("\n%d 단\n",n);

for ( int i=1 ; i<=9 ; i++) printf("%d * %d = %d\n",n,i,n*i);

printf("\n");

}



void disp( int a , double b , char c) {  // 함수를 값으로 취한다 (call by value)

printf("%d\n",a);

printf("%.2lf\n",b);

printf("%c\n",c);

printf("\n");

}


void disp( int * ap , double * bp , char * cp) { // call by address

printf("%d\n",*ap);

printf("%.2lf\n",*bp);

printf("%c\n",*cp);

printf("\n");

}


void swap( int a , int b ) {

int c;

printf("call by value\n");

printf("함수 교환 전 a : %d\t b : %d\n", a, b);

c=a;

a=b;

b=c;

printf("함수 교환 후 a : %d\t b : %d\n", a, b);

}


void swap( int * ap , int * bp ) {

int c;

printf("call by address\n");

printf("함수 교환 전 a : %d\t b : %d\n", *ap, *bp);

c=*ap;

*ap=*bp;

*bp=c;

printf("함수 교환 후 a : %d\t b : %d\n", *ap, *bp);

}



void swap( int & aa , int & bb ) {

int c;

printf("call by reference\n");

printf("함수 교환 전 a : %d\t b : %d\n", aa, bb);

c=aa;

aa=bb;

bb=c;

printf("함수 교환 후 a : %d\t b : %d\n", aa, bb);

}



void disp( int & aa , double & bb ) {

printf("aa : %d\n",aa);

printf("bb : %.2lf\n",bb);

}





int sum( int  * m ) { // 포인터 던짐  ( int  m[SIZE] ) 와 같다 

 // 들어오는 순간 포인터됨

 // 헤더 다르게 써도 같에 인식

     // 선언부에서 ( int [] ) 가능

 // 선언부에서 ( int * ) 가능

int s=0;

for ( int i=0 ; i < 5 ; i++ ) {

s+= *m++;


}

return s; 

}


double avg( int  * m ) { 


int py=0;

for ( int i=0 ; i < 5 ; i++ ) {

py+= *m++;


}

return double(py)/5; 

}




void disp( char * m ) { 


for ( int i=0 ; i<NUM ; i++ ) {

printf("%s\n",*(m+i) ); 

}

/*for ( int i=0 ; i<NUM ; i++ ) {

int k=0;

while (1) {

if ( *(*(m+i)+k) == NULL) break;

printf("%c\n", *(*(m+i)+k) );

k++;

printf("\n");

}*/



}



저작자 표시 비영리 변경 금지
신고

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

130816.9일차  (0) 2013.08.19
130814.8일차  (0) 2013.08.19
130813.7일차  (0) 2013.08.19
130812.6일차  (0) 2013.08.19
130809.5일차  (0) 2013.08.19
130808.4일차  (0) 2013.08.08
Trackback 0 And Comment 0

130812.6일차

|

#include "130812.h"

// 130812.h에 stdio.h를 넣었기 때문에 이것만 넣어도 된다.


int hap( int a, int b ) { 

return a+b; 

}


int cha( int a, int b ) {

return a-b;

}


int gop( int a, int b ) {

return a*b;

}


double mok( int a, int b ) {

return (double)a/b;

}


int big(int a, int b, int c) {

if (a>b && a>c) return a;

else if (b>c) return b;

else return c; // if else 로 끝내면 return 값이 없을 수도 있기때문에 

// return 못할수도 있다 그러면 오류남 (문법상 오류)

}



void disp( char a, int b) {

printf("%d\t",b); 

for (int i=0 ; i<b ; i++) printf("%c",a);

printf("\n");

}


void disp( int a, int b, char c) {

printf("%d\t",a-b); 

for (int i=0 ; i<a-b ; i++) printf("%c",c);

printf("\n");

}


void disp( char a, char b, int c) {

printf("%d\t",c); 

for (int i=0 ; i<c ; i++) {

if (i%2==0) printf("%c",a);

if (i%2==1) printf("%c",b);

}

}



int factorial( int a ) {

if (a <=1) return 1; 

else return a*factorial( a-1 ); 

}


void fibo( int a) {

int n1=1, n2=1;

int n3;

printf("피보나치 수열 값 : ");

if (a==1) printf("%d",n1);

  else if (a==2) printf("%d %d",n1,n2);

else {

printf("%d %d ",n1,n2);

for ( int i=0 ; i<a-2 ; i++) {

n3=n1+n2;

n1=n2;

n2=n3;

printf("%d ",n2);

} // for

printf("\n",n2);

} // else

}




저작자 표시 비영리 변경 금지
신고

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

130814.8일차  (0) 2013.08.19
130813.7일차  (0) 2013.08.19
130812.6일차  (0) 2013.08.19
130809.5일차  (0) 2013.08.19
130808.4일차  (0) 2013.08.08
130807.3일차  (0) 2013.08.07
Trackback 0 And Comment 0
prev | 1 | ··· | 4 | 5 | 6 | 7 | 8 | 9 | 10 | next

티스토리 툴바