'분류 전체보기'에 해당되는 글 119건

  1. 2009.03.25 구조체
  2. 2009.03.24 문자열
  3. 2009.03.24 성적관리 프로그램
  4. 2009.03.24 다중포인터II, 포인터배열, 배열포인터
  5. 2009.03.24 다중 포인터
  6. 2009.03.24 야구게임
  7. 2009.03.19 포인터
  8. 2009.03.19 배열
  9. 2009.03.19 피보나치 수열
  10. 2009.03.19 함수, 지역변수, 전역변수, 재귀함수
C/C++2009. 3. 25. 20:42
구조체란?
◎ 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의 하는것
◎ 붙어 다니게 되는 데이터들은 하나로 묶어서 관리 하는것이 편리하다


/*
#include <stdio.h>

struct Man {       //구조체
int ID;
float key;
char name[10];
char address[50];
};

Input_Man(struct Man * Lee2){  //함수로 뺏을경우

(*Lee2).ID = 1002;   
//Lee2->ID = 1002;  위와 동일한 기능

(*Lee2).key = 180.2;
strcpy((*Lee2).name,"Gist Lee");
strcpy((*Lee2).address,"Japan");
}

int main(){
int x;
int y;
struct Man Lee = {1001,173.2,"Shakii","서울시 동대문구 신설동"};

struct Man Lee2;

printf("Lee의 정보\n");
printf("Lee구조체의 전체 Byte : %d \n", sizeof(Lee));
printf("ID : %d \n",Lee.ID);
printf("이름 : %s \n",Lee.name);
printf("키 : %.2f \n",Lee.key);
printf("주소 : %s \n",Lee.address);
printf("Lee : %d \n",Lee);  //첫번째 값을 사용
printf("\n\n\n");


//Lee2 = Lee;      //오른쪽것이 왼쪽으로 복사

Input_Man(&Lee2);

printf("Lee2의 정보\n"); 
printf("ID : %d \n",Lee2.ID);
printf("이름 : %s \n",Lee2.name);
printf("키 : %.2f \n",Lee2.key);
printf("주소 : %s \n",Lee2.address);

 

return 0;
}
*/

Posted by 샤키
C/C++2009. 3. 24. 20:55

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

 int ch;

 while(1){ 
 ch = getchar ();
 if(ch==0xe0){
 printf("특수키입니다\n",ch);
 ch = getchar ();
 }
 
 printf("입력한 문자는 %c(%x)(%d)입니다\n",ch,ch,ch);

 if(ch=='q'){

 printf("잠시만 기다려주세요...");
 getch();
 return 0;
 }
 }
}
*/

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


int main(){

 char ch[10];
 /*
 puts("gets함수 사용");
 gets(ch); //10개의 문자 이상의 값을 입력 받을 시 에러
 puts(ch);

 */
 puts("fgets함수 사용");
 fgets(ch,sizeof(ch),stdin); //입력 받을 size크기를 조절가능
 puts(ch);
 


}


/*
#include <stdio.h>

int main(){          //문자열의 길이를 반환하는 함수

char ch[20];
printf("문자열 입력 : ");
fgets(ch,sizeof(ch),stdin);;
printf("입력한 문자열의 크기는 : %d\n",strlen(ch));
return 0;
}
*/

/*
#include <stdio.h>     //문자열을 복사하는 함수
#include <string.h>

int main(){

char ar1[10] = "Apple";
char ar2[10] = "Orange";
printf("ar1 : %s\n",ar1);
strcpy(ar1,ar2);
printf("ar1 : %s\n",ar1);
strncpy(ar1,"Banananananananana",sizeof(ar1)-1);
printf("ar1 : %s\n",ar1);
return 0;

}
*/

/*
#include <stdio.h>   //문자열을 연결하는 함수
#include <string.h>

int main(){

char si[10] = "서울시 ";
char gu[10] = "동대문구 ";
char dong[10] = "신설동 ";
char address[100] = "\0";

strncat(address, si, sizeof(address)-strlen(address)-1);
strncat(address, gu, sizeof(address)-strlen(address)-1);
strncat(address, dong, sizeof(address)-strlen(address)-1);
puts(address);
return 0;
}
*/

/*
#include <stdio.h>     //문자열을 복사하는 함수
#include <string.h>

int main(){

char ar1[10] = "Apple";
char ar2[10] = "Apple";
int tmp;
tmp = strcmp(ar1,ar2);   //두 문자열이 같을 때 0을 반환
printf("비교값 %d\n",tmp);
tmp = strcmp(ar1,"Orange");  //뒤의 문자열의 값이 더 클때 -1 반환
printf("비교값 %d\n",tmp);
tmp = strcmp(ar1,"Appld");  //앞의 문자열의 값이 더 클때 1을 반환
printf("비교값 %d\n",tmp);
tmp = strcmp(ar1,"Apppp",3);
printf("비교값 %d\n",tmp);  //앞의 3문자만 비교하여 결과를 반환
return 0;

}
*/

 

/*
//strstr   문자열 검색후 검색결과가 참일경우 그문자열의 주소를 반환(참), 검색결과 없을시 NULL(거짓)
#include <stdio.h>    
#include <string.h>

int main(){

char ch[] = "apple orange grape banana";
char * p;

p = strstr(ch,"orange");

if(p==NULL){
printf("문자열을 찾지 못했습니다.\n");
}else{
printf("해당 문자열이 있습니다.\n");
}

return 0;
}
*/


/*
#include <stdio.h>
#include <string.h>
#define 후렴 "\n후렴 : 무궁화 삼천리 화려강산\n대한사람 대한으로 길이 보전하세\n\n"

int main(){

char ch[]="1.동해물과 백두산이 마르고 닳도록\n"
"하느님이 보우하사 우리 나라만세\n"
후렴
"2.남산 위에 저소나무 철갑을 두른듯\n"
"바람서리 불변함은 우리 기상일세\n"
후렴
"3.가을하늘 공활한데 높고 구름 없이\n"
"밝은달은 우리가슴 일편담심일세\n"
후렴
"4.이기상과 이맘으로 충성을 다하여\n"
"괴로우나 즐거우나 나라 사랑하세\n"
후렴;

char *p = ch;
char search[] = "나라";
int Count = 0;

while(1){
p = strstr(p,search);
if(p==NULL){break; 
}
Count++;
strncpy(p,"국가",4);
}

printf("%s는 총 %d번 검색되었습니다 \n",search,Count);
printf("%s",ch);

return 0;

}
*/

/*
#include <Turboc.h>
#include <string.h>

void main(void){

char str[]="Made In Korea";
char str2[16];

strcpy(str2,str);
strupr(str2);
printf("strupr => %s\n",str2);
strcpy(str2,str);
strlwr(str2);
printf("strlwr => %s\n",str2);
strcpy(str2,str);
strrev(str2);
printf("strrev => %s\n",str2);
strcpy(str2,str);
strset(str2,'*');
printf("strset => %s\n",str2);


return 0;

}
*/

#include <stdio.h>
#include <string.h>

int main(){

 char ch[]="Made In Korea";
 char *p;
 int i;

 
 printf("\n");
 for(i=strlen(ch+1);i>=0;i--){
  printf("%c",ch[i]);
  
 }

 return 0;
}

여기부터 멍 때려서

하나도 모르겠다 ㅜㅜ

Posted by 샤키
C/C++2009. 3. 24. 20:52

/*
#include <stdio.h>
#define MAX 10


void Input_detail(int grade[MAX][4],int i){
 printf("학생의 국어 : ");
 scanf("%d",&grade[i][0]);
 printf("학생의 영어 : ");
 scanf("%d",&grade[i][1]);
 printf("학생의 수학 : ");
 scanf("%d",&grade[i][2]);


 grade[i][3] = grade[i][0] + grade[i][1] + grade[i][2];


}
void Input(int (*grade)[4]){  // grade[MAX][4]
 int i;
 for(i=0;i<MAX;i++){
  if(grade[i][0] == -1)break;
 }


 Input_detail(grade,i);

 


 


}

 


int ranking(int grade[MAX][4] , int Sum){
 int rank=1;          //rank라는 변수를 1로 하고
 int i;


 for(i=0;i<MAX;i++){
  if(grade[i][0] != -1){
   if(grade[i][3] > Sum){      //입력된 합계가 Sum보다 많은 1씩 누적
    rank++;
   }
  }
 }


 return rank;

 

 


}

 


Print(int grade[MAX][4]){
 int i;
 for(i=0;i<MAX;i++){
  if(grade[i][0] != -1){
   printf("%5d | %5d | %5d | %5d | %5d | %.2f | %5d \n",
    i+1,grade[i][0],grade[i][1],grade[i][2],grade[i][3],
    (float)grade[i][3]/3, ranking(grade,grade[i][3]) );


  }


 }


}
void Sujung(int grade[MAX][4]){
 int Sel;
 int i;


 printf(" 1. 수정 \n");
 printf(" 2. 삭제 \n");
 printf(" > ");
 scanf("%d",&Sel);
 printf("몇번째 테이블 : ");
 scanf("%d",&i);
 i--;
 if(Sel==1){
  Input_detail(grade,i);
 }else if(Sel==2){
  grade[i][0] = -1;    //삭제는 -1 즉 작성되지 않은상태로 돌린다는 의미
 }else{
  printf("잘못입력 하셨습니다 \n");


 }
}

 


int main(){


 int grade[MAX][4];
 int Select;
 int i;


 


 for(i=0;i<MAX;i++){
  grade[i][0] = -1;  //초기값 성적이 작성 되지 않은상태를 -1


 }


 while(1){


  system("cls");
  printf("==성적관리 프로그램 ==\n");
  printf(" 1. 입 력 \n");
  printf(" 2. 출 력 \n");
  printf(" 3. 수정 및 삭제 \n");
  printf(" 4. 프로그램 종료 \n");
  scanf("%d",&Select);
  switch(Select){
   case 1:
    Input(grade);
    break;
   case 2:
    Print(grade);
    break;
   case 3:
    Sujung(grade);
    break;
   case 4:
    printf("프로그램을 종료하겠습니다 \n");
    return 0;
  }
  system("pause");

 


 } 

 


 return 0;
}
*/

함수를 이용이 눈에 띄는 쌤 ver.

Posted by 샤키
C/C++2009. 3. 24. 20:51

/*
#include <stdio.h>   //문자열 중에 일치되는 첫문자 찾기

int main(){

char Select;
char Sel[]= "None but The Brave deserves the Fair";
char *tmp;


printf("문자열 : %s\n",Sel);
printf("찾을 문자 입력 : ");
scanf("%c",&Select);
for(tmp=Sel;*tmp!=NULL;tmp++){
if(*tmp==Select)break;
}
printf("일치되는 첫번째 문자열은 %d입니다 \n",tmp-Sel+1);
}
*/

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

char *name1[4] = { "apple","Orange","Banana","Grape"};
char name2[4][10] = { "apple","Orange","Banana","Grape"};
int i;

for(i=0;i<4;i++){  //2차원 배열
printf("name2[%d] = %8s (%d) \n",i,name2[i],name2[i]);//12로 시작 스텍영역
}
printf("============================\n");

for(i=0;i<4;i++){  //포인터 배열
printf("name1[%d] = %8s (%d) \n",i,name1[i],name1[i]);//4로 시작 데이터영역
}
return 0;
}
*/

/*
#include <stdio.h>

int main(){

int A[5] = {10,20,30,40,50};
int *p = A;
int i;
int AA[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
int (**pp)[4];  //**pp 두번으로 커널영역 접근하여 에러발생

for(i=0;i<5;i++){
printf("%d\n",p[i]);
}

pp = AA;

printf("pp = %d \n",pp);
printf("AA = %d \n",AA);

printf("*pp = %d \n",*pp);
printf("*AA = %d \n",*AA);

printf("**pp = %d \n",**pp);
printf("**AA = %d \n",**AA);

printf("AA[1][2] = %d \n",AA[0][1]);
printf("pp[1][2] = %d \n",pp[0][1]);
return 0;

}
*/


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

 char c;
 printf("getchr : ");
 c = getchar ();
 printf("입력한 값 : %c\n",c);
 //fflush(stdin);
 printf("fgetc : ");
 c = fgetc(stdin);
 printf("입력한 값 : %c\n",c);
 return 0;
}
*/

 

Posted by 샤키
C/C++2009. 3. 24. 20:47

/*
#include <stdio.h>   //2차원 배열

int main(void){

 int A[3][4] = {
  {1,2,3,4},
  {5,6,7,8},
  {9,10,11,12}

 };
 int i,j;

 printf("A[0][0] = %d \n",A[0][0]);
 printf("A[0][0] = %d \n",A[1][3]);

 printf("A = %d \n",A);
 printf("A[0] = %d \n",A[0]);
 printf("&A[0][0] = %d \n",&A[0][0]);
 printf("A[1] = %d \n",A[1]);
 printf("&A[1][0] = %d \n",&A[1][0]);

 for(i=0;i<3;i++){
  for(j=0;j<4;j++){
   printf("%3d ",A[i][j]);
  }
  printf("\n");

 }

 return 0;
}
*/

/*

#include <stdio.h>   //2차원배열을 이용 학생성적

int main(void){

 int A[3][4];
 int i,j;

 printf("<<학생 성적 입력>>\n");

 for(i=0;i<3;i++){
  printf("<< %d번째 학생>>\n",i+1); 
  printf(" 국어 : ");
  scanf("%d",&(A[i][0]));  //표를 생각해보면 됨
  printf(" 영어 : ");
  scanf("%d",&(A[i][1]));
  printf(" 수학 : ");
  scanf("%d",&(A[i][2]));
  A[i][3]=A[i][0]+A[i][1]+A[i][2];  //for이 세번 돌면서 합까지 열3번째 계산
 }
  
 
  printf("%s %5s %5s %5s %5s\n","Num","국어","영어","수학","합계");
  
  for(i=0;i<3;i++){
   printf("[%d]",i+1);
   for(j=0;j<4;j++){
    printf("%5d", A[i][j]);
   }
   printf("\n");
  }
  return 0;
}
*/

#include <stdio.h>

int main(){

 int x = 10;

 int * p;    //일중 포인터
 int ** pp;   //이중 포인터
 int *** ppp;   //삼중 포인터
 int y = 200;

 p = &x;

 *p = 100;

 printf("x = %d \n",x);   //x의값
 printf("&x = %d \n",&x); //x의 주소

 pp = &p;

 printf("pp = %d \n",pp);  //p의 주소
 printf("*pp = %d \n",*pp);  //2번따라가서 x의 주소
 printf("**pp = %d \n",**pp); //x의 값

 ppp = &p;
 printf("ppp = %d \n",ppp);
 printf("*ppp = %d \n",*ppp);
 printf("**ppp = %d \n",**ppp);
 //printf("***ppp = %d \n",***ppp);

 x = &y;

 printf("***ppp = %d \n",***ppp);

 return 0;
}

슬슬 한계다...

Posted by 샤키
C/C++2009. 3. 24. 20:45

#include <stdio.h>   //야구게임
#include <time.h>
#include <stdlib.h>

int main(){
 int Player[3];  //플레이어 숫자
 int CPU[3];  //컴퓨터 숫자
 int strike=0,ball=0,count=0;
 int i,j;
 int tmp;

 srand(time(NULL));
 rand();rand();rand();
 srand(rand());

 CPU[0]=rand()%9+1;  //랜덤수 생성
 CPU[1]=rand()%9+1;
 CPU[2]=rand()%9+1;


 while((CPU[0]==CPU[1])||(CPU[1]==CPU[2])||(CPU[0]==CPU[2])) //랜덤수가 중복 되지 않기 위해
 {
  CPU[0]=rand()%9+1;
  CPU[1]=rand()%9+1;
  CPU[2]=rand()%9+1;
 }


 printf("== 게임을 시작 합니다 ==\n"); 

 while(1){
  printf("= 숫자를 세개 입력하세요 = :");
  scanf("%d",&tmp);

  strike=0;
  ball=0;

  Player[0] = tmp/100;
  Player[1] = tmp%100/10;
  Player[2] = tmp%100%10;


  for(i=0;i<3;i++)  
   for(j=0;j<3;j++)
    if(CPU[i]==Player[j]&&i==j){
     strike++;      //스트라이크 맞춘갯수
    }else if(CPU[i]==Player[j]){
     ball++;       //자리는 안맞고 숫자만 맞춘갯수
    }


    count++;

    printf("%d번째  Strike: %d  Ball: %d\n",count,strike,ball);
    printf("\n");


    if(strike==3){        // 3개 모두 자리수 맞추면 끝
     printf("숫자는 %d, %d, %d 입니다\n",CPU[0],CPU[1],CPU[2]);
     printf("%d 번만에 맞추셨습니다!! \n",count);
     break;
    }

 }
}


Posted by 샤키
C/C++2009. 3. 19. 23:41
포인터란 메모리의 번지 주소이다.
포인터 변수는 메모리의 주소를 가지는 변수이다.
포인터 변수의 크기는 4byte의 부호없는 정수형이다

/*
포인터변수 = 포인터
변수 : 데이터를 담을수 있는 메모리
메모리주소를 담는 변수

☆포인터변수를 선언하면 ---> 부호없는 정수형 (4바이트)☆
*/

/*
#include <stdio.h>

int main(){

int x = 100;
int y = 200; 

int * p;

printf("x = %d \n", x);
printf("x의 주소 : %d \n", &x);       //10진수 %d,    16진수로 보려면 %x
printf("x의 16진수 : %x \n", &x);
printf("y = %d \n", y);
printf("y의 주소 : %d \n", &y);   // &변수의 주소
printf("y의 16진수 : %x \n", &y);

p = 1245024;       //&x  내 x의 메모리주소

printf("p = %d \n", p);     //p는 메모리주소를 담고 있고
printf("*p = %d \n", *p);    //*는 주소를 통해 해당변수로 접근
*p = 300;
printf("x = %d \n", x);


return 0;

}
*/


/*
int main(){

int Num = 0x12345678;
char * p;

p = &Num;

printf("Num = %x\n",Num);
printf("*p = %x \n",*p);      //char로 1바이트를 사용 그래서 두자리수씩 읽는데
// 엔디안방식(?)으로 실질적으로는 78 56 34 12로 나와서 78로 출력

return 0;

}
*/


/*
int main(){

int A[7] = { 10, 23, 51, 2, 990, 3, 94 }; 

double * p;       //double 이건 p는 부호없는 4바이트다

p = &A[1];

printf("%d",*(p+2));


return 0;
}
*/

/*
int main(){         //배열과 포인터

int A[8] = { 10, 23, 51, 2, 990, 3, 94, 0};  //A는 배열의 첫번째 주소(&A[0]과 같은뜻)
int * p; 


printf("*A = %d \n",*A);    //A는 포인터 상수 (값이 변경 불가능)☆중요
printf("*(A+1) = %d \n",*(A+1));  //10 다음수 23 출력

p = A;
printf("*p = %d \n",*p);    //p는 포인터 변수 (값이 변경 가능)☆중요
printf("*(p+1) = %d \n",*(p+1));


//p++;         //p가 포인터변수라서 가능 (반면, A++는 상수라 불가능)☆중요
//printf("*p = %d \n",*p);

for(p=A;*p != 0;p++){   //p는 A부터 p가 0이 아닐때까지 증가하면서 출력해라
printf("%d \n", *p);

}

 

return 0;
}

*/

/*
#include <stdio.h>      //Call by Reference

void func(int *x, int *y){          //주소로 넘겨준다
printf("x(main Num1 주소) = %d \n",x);
printf("y(main Num1 주소) = %d \n",y);


*x = 300;      //넘겨준 주소에서 값을 바꾸면
*y = 400;
}

int main(){
int Num1 = 100;
int Num2 = 200;

printf("Num1 = %d \n",Num1);
printf("Num1 = %d \n",Num2);

func(&Num1,&Num2);

printf("Num1 = %d \n",Num1);  //함수요청후 값이 바뀌걸 알수있다
printf("Num1 = %d \n",Num2);


return 0;
}

*/

/*
#include <stdio.h>     //두 값을 서로 교환하는 함수
void change(char *ch1, char *ch2){
 char tmp;
 tmp = *ch1;
 *ch1 = *ch2;
 *ch2 = tmp;

}
int main(){

 char x='A', y='B'; 
 printf("x = %c , y = % c\n",x,y);
 change(&x,&y);
 printf("x = %c , y = % c\n",x,y); 

 return 0;

}
*/

/*
#include <stdio.h>

int main(){

 int array[10] = {6,9,3,2,161,4,888,19};
 int *pt = array;

 printf("*array    : %d\n",*array);          //6
 printf("*array    : %d\n",*array+4);  //*array부터 계산
 printf("*array    : %d\n",*(array+2)); //3
 printf("*(pt+1)    : %d\n",*(pt+1));  //9
 printf("*(2+pt)+1   : %d\n",*(2+pt)+1);  //X
 printf("2*(*(4+(++pt))+5)  : %d\n",2*(*(4+(++pt))+5));
 printf("*5[array]   : %d\n",5[array]);
 printf("*array[5]   : %d\n",array[5]);
 printf("*0[array+5]   : %d\n",0[array+5]);
 printf("*(3+1)[array+1]+10  : %d\n",(3+1)[array+1]+10);
 printf("*1+2[array+3]+5   : %d\n",1+2[array+3]+5);

 return 0;

}
*/

#include <stdio.h>
int change(int *a,int *b,int c){

 int temp = *a;    //*a의 10을 백업
 *a = c;    //c의30을 *a에 복사
 c = *b;    //*b의 20을 c에 복사
 *b = temp;   //백업해둔 temp를 불러와 *b에 복사해서 *b는 10
 return c;   //c말고도 a,b로도 바꾸어본다
}
int main(){
 int a=10,b=20,c=30;
 c = change(&a,&b,c);
 printf("a : %d\n",a);
 printf("b : %d\n",b);
 printf("c : %d\n",c);
 return 0;
}


C의 꽃이라고 하는 포인터다 아직은 들을만 하다... 
놓치지 말고 열심히 해야지...
언제 포기 할지 모르지만...

Posted by 샤키
C/C++2009. 3. 19. 23:39

/*
#include <stdio.h>          //배열의 선언

int main(){

int x = 10;
int y = 20;
int i;
int Sum = 0;   // 초기값은 int Array[3] = { 100, 200, 300}; 사용할수 있다
// int Array[] = { 100, 200, 300};  이것처럼 초기값이 있으면 비울수도 있다

int Array[5];          //  int Array선언할때 [ ]고정된값(상수)를 사용 ; 변수는 에러남

printf("x = %d \n",x);
printf("y = %d \n",y);

printf("x = %d \n",&x);   //&메모리구조 보는
printf("y = %d \n",&y);

Array[0] = 100;

printf("Array[0] = %d \n",Array[0]);
printf("&Array[0] = %d \n",&Array[0]);
printf("Array = %d \n",Array);  //그냥 변수는 첫번재 0번 배열과 같다
printf("Array의 크기 : %d \n",sizeof(Array)); //변수의 크기

for(i=0;i<5;i++){   //for문을 이용 같은배열 사용
printf("%d번째 학생의 성적 입력 : ",i+1);
scanf("%d",&Array[i]);
Sum = Sum + Array[i];
}

for(i=0;i<5;i++){
printf("%d번째 학생 성적 : %d \n",i+1,Array[i]);
}
printf("==============================\n");
printf("학생의 전체 합은 %d \n",Sum);
printf("==============================\n");


}
*/


/*
#include <stdio.h>      //배열로 문자 다루기
int main(){

char String[10] = "apple";   //초기값 설정
char String1[10];
int i;
String1[0] = 'o';
String1[1] = 'r';
String1[2] = 'a';
String1[3] = 'n';
String1[4] = 'g';
String1[5] = 'e';
String1[6] = '\0';  //문자열 마지막에 NULL문자 삽입
printf("String = ");
for(i=0;i<sizeof(String);i++){
if(String[i]==NULL){break;}  //String[i]가 NULL문자일시 for문 종료
printf("%c",String[i]); 
}
printf("\nString1 = %s \n", String1);
return 0;
}
*/


/*
#include <stdio.h>       //배열을 이용 암호화, 복호화


int main(){

char ch[10] = "Apple";
int i;


for(i=0;i<10;i++){
ch[i] = ch[i]+3;   // 3씩 이동하여 암호화
}

printf("암호화 : %s \n",ch);

for(i=0;i<10;i++){
ch[i] = ch[i]-3;    // 3씩 이동한것을 다시 원상태로 해서 복호
}
printf("복호화 : %s \n",ch);

for(i=0;i<10;i++){
ch[i] = ch[i]^168642;   // 비대칭식으로 암호화
}

printf("암호화 : %s \n",ch);

for(i=0;i<10;i++){
ch[i] = ch[i]^168642;   // 그대로 다시 치면 복호
}

printf("복호화 : %s \n",ch);

}

*/

/*
#include <stdio.h>       //AB 순서를 배열로 이용 서로 부꾸기


int main(){

char ch[3] = "AB";
char tmp;

printf("%c  %c \n",ch[0],ch[1]);

tmp = ch[0];       //ch[0]을 tmp에 백업
ch[0] = ch[1];  // ch[1]을 ch[0]으로 복사
ch[1] = tmp;  // 다시 백업한 tmp를 불러옴


printf("%c  %c \n",ch[0],ch[1]);

}
*/

/*
#include <stdio.h>         // Reverse 문자열 출력


int main(){

char ch[] = "Reverse";
int i,j;
char tmp;

 

for (i=0;i<sizeof(ch);i++){  


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

tmp = ch[0];      //초기값 설정
for(j=0;j<6;j++){
ch[j] = ch[j+1];
}
ch[6] = tmp;       //백업한것을 다시 복귀

}

}
*/
/*    
#include <stdio.h>       //Reverse 문자열 반복
#include <windows.h>

int main(){

char ch[] = "Reverse  ";
int i,j;
char tmp;

 

while(1){         //무한반복


printf("%s\r",ch); //    /r  출력을 다시 처음으로 가라

tmp = ch[0];      //초기값 설정
for(j=0;j<6;j++){
ch[j] = ch[j+1];
}
ch[6] = tmp;       //백업한것을 다시 복귀
Sleep(100);   // 콘솔창에 출력속도(?)

}

}

*/
#include <stdio.h>       //배열을 이용 순서를 정리

int main(){

 int A[10] = { 30, 11, 55, 67, 99, 50, 39, 100 };
 int i,j;
 char tmp;

 for(i=0;i<10;i++){
  printf("[%2d] : ",i+1);   
  for(j=0;j<10;j++){
   printf("%d ",A[j]);
  }
  printf("\n");

  for(j=0;j<9;j++){   
   if(A[j]>A[j+1]){        //부등호 바꾸면 오름차순, 내림 차순 바꿀수 있다  
    tmp = A[j];
    A[j] = A[j+1];
    A[j+1] = tmp;     
   }
  }


 
 }

 

}

Posted by 샤키
C/C++2009. 3. 19. 23:36

#include<stdio.h>

int func(int i){
 static int data=1;
 if(data<1000){
  printf(" %d ",data);
  printf(" %d ",i);   
  data = data+i; 
  return func(data+i)+data;
 }
 return 0;
 
}


int main(){
 int i = 1; 
 func(i);
 printf("\n");
 printf("\n피보나치수열\n");
 return 0;

}





재귀함수를 사용하여 피보나치 수열을 작성한건데...
원한 답은 나왔지만
뭔가 찝찝...
Posted by 샤키
C/C++2009. 3. 19. 23:29

/*#include <stdio.h>

int C;   //전역변수

void func(int AA, int BB){   //지역변수

printf("func함수\n");
printf("AA = %d \n",AA);
printf("BB = %d \n",BB);
C = 100;

}

int main(){   //지역변수

int A = 10;
int B = 20; 

printf("A = %d \n",A);
printf("B = %d \n",B);
printf("C = %d \n",C);  //main 함수에서

func(A,B);

printf("C = %d \n",C);  //func 함수 갔다 와서

return 0;

}
*/

/*
#include <stdio.h>
int a = 9;
int func(int b, int c);
int finc1(int b);
int main(){
int b=3;       // b=3
int c=6;  // c=6
b=func(b,c);   //  //12가 되고
printf("%d\n",b);  //가장 나중에 출력
return 0;
}
int func(int b, int c)  //첫번째b=3,c=6
{
printf("%d\n",b);    //3
printf("%d\n",c); //6
b = 4;
func1(b);   //4일때 func1로 이동  --->
a = 21;
b = 6;
return b+b;    //12이니
}
int func1(int b)  //b=4
{
printf("%d\n",b);    //4로출력
printf("%d\n",a);  //전역변수 a가 9
return 9;
}
*/

/*
#include <stdio.h>

void func(void){
static int A=0;
A++;
if(A==7){
printf("이 문구는 일곱번째에서 출력 \n");

}
printf("A = %d \n", A);
}
int main(){
func();
func();
func();
func();
func();
func();
func();
func();
func();
func();

func();
func();
func();
func();
func();
func();
func();
func();
func();
func();
func();
func();
func();


return 0;
}
*/

#include <stdio.h>
#include <time.h>
int baserand(int x, int y){
 static int seed; 
 seed = rand()%(y-x+1)+x;
 return seed;
}
int main()
{
 printf("baserand함수 = %d \n",basdrand(10,20)); 
 return 0;
}


/*
#include <stdio.h>

int func(int data){
 if(data){
  printf("%d + ",data);
  return func(data-1)+data;
 }
 printf("\b\b= ");
 return 0;
}
int main()
{
 int i = 30;
 printf("%d\n", func(i));
 return 0;
}

*/
/*
#include <stdio.h>
int fibo(int data);
int main(void)
{
 int i,a;
 printf("피보나치 수열 출력\n");
 printf("몇번째 까지 출력 해 드릴까요? >");
 scanf("%d",&i);
 for(a=1;a<=i;a++){
                  printf("%d + ",fibo(a));  
                  }
 printf("\b\b  ");
 printf("\n");
 system("PAUSE");
 return 0;
}

int fibo(int data)
{
 if(data==1 || data==2){            // 초기 값은 정해놓고 시작 
                        return 1;
                        }
else{
 return fibo(data-1)+fibo(data-2); // n번째 수가 나오려면 n-1 과  n-2 를 더하면 나옴.
}
}

*/

Posted by 샤키