본문 바로가기
ios 뽀개기/C언어

c언어 기초2

by 인생여희 2019. 5. 17.
반응형
#include <stdio.h>
#include <string.h>
int result; //전역변수, 특별한 초기화 값이 없으면 0으로 초기화됨
 
 
 //배열 길이 구하기- 5
//매개변수 data의 [ ] 의 숫자는 적지 않아도 된다. 전달되는 배열의 크기에 영향을 받기 때문에 어떤 숫자를 적어도 무방하다.
int GetStringLength(char datas[]){
    int count = 0;
     /* 0이 나올 때까지 문자의 개수를 더한다 */
    while (datas[count]) {
        printf("배열안의 글자는 : %c \n" , datas[count]);
        /*
         배열안의 글자는 : h
         배열안의 글자는 : a
         배열안의 글자는 : p
         배열안의 글자는 : p
         배열안의 글자는 : y
         */
        count++;
    }
    return count;
}
 
 
//step3
void Test(){
    int data = 0;
    printf("%d  \n" , data++);
}
 
//*step2 전역변수
void Sum2(int data1, int data2){
    result = data1 + data2;
}
 
 
//*step1 지역변수 함수
int Sum(int data1, int data2){  // data1, data2는 지역변수 이다. 5와 3으로 초기화 된다.
    int result = data1 + data2; // 지역 변수, data + data2 값으로 초기화 됨.
    return result;
}
 
 
 
 
 
 
int main(int argc, const char * argv[]) {
 
    //지역변수 함수 *step 1
    int result;     //지역변수, 초기화 되지 않아서 어떤 값이 들어있을지 모름
    result = Sum(5, 3);
    printf("5 + 3 = %d \n" , result);
    //5 + 3 = 8
 
 
    //전역 변수 함수;
    Sum2(6, 4);
    printf("6 + 4 = %d \n", result); // ! 주의! 전역변수 result 를 참조하지 않고 지역변수 result 를 참조한다.
    //6 + 4 = 8
 
 
    //step3
    int i ;
    for (i=0; i<5; i++) {
        Test();
    }
    /*
     0
     0
     0
     0
     0  
     */
 
 
    //step 12
 
    //배열 - 1
    short student[20];
    student[1] = 10;
   printf("%d %d\n", student[1], student[2]);
    //10 0
 
 
    //배열 - 2
    short mystudent[20], ii;
    for (ii = 0; ii < 20; ii++) mystudent[ii] = 0;
    mystudent[1] = 10;
     printf("%d %d\n", mystudent[1], mystudent[2]);
    //10 0
 
 
    //배열 - 3
    short yourstudent[20] = {0,};
    yourstudent[1] = 10;
     printf("%d %d\n", yourstudent[1], yourstudent[2]);
    //10 0
 
 
    char data[5] = {1,2,3,4,5};
    int resultdata = 0, iii;
    for (iii = 0; iii<5; iii++) {
        resultdata = resultdata + data[iii];
    }
    printf("data 배열의 각 요소의 합은 %d 입니다. \n" , resultdata);
    //data 배열의 각 요소의 합은 15 입니다.
 
 
 
    //배열 - 4
    char dataArray[6] = {'h' , 'a' ,'p' ,'p' , 'y', 0};
    char ment[] = "C programming~";
    printf("%s \n" , dataArray);
    //happy
    printf("%s \n" , ment);
    //C programming~
 
 
    //배열 길이 구하기- 5
    int data_length; //문자열 길이를 저장할 변수
    char dataChars[10] = {'h' , 'a' , 'p'  , 'p'  , 'y' , 0 , };
    data_length = GetStringLength(dataChars);
    printf("data length = %d \n" , data_length);
    //data length = 5
 
 
    //배열 길이 구하기- 6
    int my_data_length;
    char mydatas[10] = {'h' , 'a', 'p', 'p' , 'y' , 0, };
    my_data_length = strlen(mydatas);
    printf("data length = %d \n" , my_data_length);
    //data length = 5
 
 
 
    //배열 더하기 , 복사 - 7
    char sdata[10] = {'a' , 'b' ,'c' , 0, };
    char sresult[16] ;  //새로운 문자열을 저장할 변수
    strcpy(sresult, sdata); //sdata에 저장된 문자열을 sresult로 복사
    strcat(sresult, "def");  /* result에 “def”를 덧붙임 */
    printf("%s + \"def\" = %s\n" ,sdata , sresult);
    //abc + "def" = abcdef
 
 
    //2차원 배열 - 8
    char doublearray[3][4] = {  {0,0,2,0} ,  {1,1,0,0} , {2,1,0,2} };
    int x, y;
 
    for (y = 0;  y < 3;  y++) {
        for (x = 0; x < 4; x++) {
            printf("%d행에 %d열에" , y + 1 , x + 1);
            if (doublearray[y][x] == 1) {
                printf("검은돌이 놓여있습니다. \n");
            } else if(doublearray[y][x] == 2){
                printf("흰돌이 놓여 있습니다. \n");
            }else{
                printf("는 돌이 놓여 있지 않습니다. \n");
            }
 
        }
    }
    /*
     1행에 1열에는 돌이 놓여 있지 않습니다.
     1행에 2열에는 돌이 놓여 있지 않습니다.
     1행에 3열에흰돌이 놓여 있습니다.
     1행에 4열에는 돌이 놓여 있지 않습니다.
     2행에 1열에검은돌이 놓여있습니다.
     2행에 2열에검은돌이 놓여있습니다.
     2행에 3열에는 돌이 놓여 있지 않습니다.
     2행에 4열에는 돌이 놓여 있지 않습니다.
     3행에 1열에흰돌이 놓여 있습니다.
     3행에 2열에검은돌이 놓여있습니다.
     3행에 3열에는 돌이 놓여 있지 않습니다.
     3행에 4열에흰돌이 놓여 있습니다.
     */
 
 
 
 
 
    return 0;
}
 

 

do it c언어 도서 참고

반응형

'ios 뽀개기 > C언어' 카테고리의 다른 글

비트연산  (269) 2019.11.18
자료형  (266) 2019.11.18
c언어 기초4  (614) 2019.05.22
c언어 기초 3  (597) 2019.05.21
c언어 기초1  (571) 2019.05.16

댓글