C언어 기초 프로그래밍 강좌 9강 - 사용자 정의 함수 (Function) (C Programming Tutorial For Beginners 2017 #9)

Поделиться
HTML-код
  • Опубликовано: 27 янв 2025

Комментарии • 123

  • @기성_푸
    @기성_푸 5 лет назад +21

    16:20 8월 이후는 날짜가 다르다는 분들을 위해
    int getDays(int month, int day)
    {
    int i, sum = 0;
    for (i = 1; i < month; i++)
    {
    if (i == 2)
    {
    sum += 28;
    }
    else if (i % 2 == 0 && i < 8)
    {
    sum += 30;
    }
    else if (i % 2 == 1 && i > 8)
    {
    sum += 30;
    }
    else
    {
    sum += 31;
    }
    }
    return sum + day;
    }
    이런 식으로 입력하면 8월 이후에 한달의 날짜가 바뀌는것도 계산할 수 있습니다.
    시청자들을 위해^^

    • @hopOnTheTeapot
      @hopOnTheTeapot 4 года назад

      이상하다고 생각했는데 댓글보길 잘했네요 감사합니다

    • @GYEONGSUGIM
      @GYEONGSUGIM 3 года назад

      왜 영상처럼 하면 오류가 발생하나요?

    • @익명으로설정한사용자
      @익명으로설정한사용자 3 года назад

      @@GYEONGSUGIM 그냥 그럴때는 ㄹㅇㅋㅋ 치면 됨

    • @20대자아실현유튜버
      @20대자아실현유튜버 Год назад

      @@GYEONGSUGIM8월은부터는 짝수이면 31일까지 홀수이면 30일까지 있습니다

  • @akixon8520
    @akixon8520 6 лет назад +5

    와 강의가 진짜 깔끔하네요.
    혹시 천재 아니신지?

  • @Leesikify
    @Leesikify 6 лет назад +3

    잘보고 열심히 따라가고 있습니다. 타 과에서 컴퓨터 공학과로 편입하는 바람에... 처음 들을땐 어려웠는데 두번 세번 반복해서 들으니 이해가고 c언어가 재미있네요 !! 감사합니다!!

  • @jinsungjang2663
    @jinsungjang2663 5 лет назад +2

    12월 22일에 딱 이 영상을 봤네요 ㅎㅎ 생일축하드려요~~

  • @봄내음-m3c
    @봄내음-m3c 4 года назад

    오늘 생일이신군요 신기합니다. 생일이신 날 많은 동영상에서 이 날짜를 알 수 있었네요. 축하드리고 앞으로도 많은 영상 부탁드려요~

  • @jiyunshin4251
    @jiyunshin4251 5 лет назад

    대학교 1학년을 마치고 휴학한 상태입니다.c언어를 배우긴 했었는데, 어렵게 느껴지던 수업이기도 하고, 오래되기도 해서 점점 기억이 안나던 차에 이 영상을 발견해서 다시 공부하고 있습니다. 좋은 영상 감사합니다.

  • @itsfunhaha
    @itsfunhaha 5 лет назад +4

    저도 공부중인데 영상에 나온 날짜 계산 프로그램이 조금 틀린 것 같아요... 7월까지는 괜찮지만 8월부터는 짝수달이 31일, 홀수달이 30일이라 저대로 프로그램 작성하시면 안되고 8월달부터 둘로 나눠서 작성해야 할 것 같네요. 선생님이 예시로 돌려보신 날짜인 3월 1일은 8월 전이라 관계가 없고 12월 22일은 어차피 홀수달 2개 짝수달 2개가 지난 후라 날짜가 맞게 나와서 오류를 발견하지 못하신 것 같아요... 그래도 항상 좋은 강의 감사합니다!!

  • @이도현-b2c
    @이도현-b2c 4 года назад

    유익하게 보고있습니다 앞으로도 좋은 강의 많이 해주세욥

  • @oeanb
    @oeanb 5 лет назад +1

    독학하는데 정말 유용해요 이렇게 무료로 양질의 강의를 올려주셔서 정말로 감사합니다 혼자 두꺼운 전공서적보고 하기 참 암담했는데 ㅎㅎ 계속 달려볼게요!

  • @narararrriii
    @narararrriii 5 лет назад +1

    월단위의 날짜를 수정하고 값이 맞지 않는 부분을 수정해 봤습니다
    int getdays(int mon,int day)
    {
    int i, sum = 0;
    for(i = 1;i < mon; i++)
    {
    if(i == 1 ||i == 3 ||i == 5 ||i == 7 ||i == 8 ||i == 10 ||i == 12)
    {
    sum += 31;
    }
    else if(i == 2)
    {
    sum += 28;
    }
    else
    {
    sum += 30;
    }
    }
    sum += day - 1;
    return sum;
    }
    int main(void)
    {
    int a,b;
    int total = 0;
    printf("오늘은 몇 월 몇 일인가요 : ");
    scanf("%d %d",&a,&b);
    total = getdays(a,b);
    printf("총 %d일이 지났습니다.",total);
    return 0;
    }

  • @머스터들
    @머스터들 5 лет назад

    scanf()함수를 사용할 때 변수 이름 앞에 &를 붙여야 함. 형식 지정자인 %c로 하면 Enter도 하나의 공백 문자로써 입력 받을 수 있음. 자료형은 int,float,double,char와 같은 언어이고 기본 입출력은 scanf,printf와 같은 것들임.전역변수는 main함수 앞에서 선언됨. 함수는 반환형태, 함수 이름, 매개변수 순으로 됨. 반환형이 있다면 유의하며 이후 강의들을 잘 본다. 반환형이 선언되어있다면 void를 쓴다. counter()로 연산가능.

  • @secretboxkevin
    @secretboxkevin 6 лет назад +1

    열심히 따라가다가 집중력이 떨어 졌는지.. 컴파일이 안되는 에러가 발생하곤 하는데요..
    // 로 한줄한줄주석처리해서 어느부분이 문제인지.. 하나씩 잡아나가다보니
    결국에는 완성이 되네요.
    이번영상 덕분에 전역변수랑 지역변수의 개념이 살짝 알듯말듯..
    조금만더하면 될거 같다는 희망을 갖고 다음영상으로 갑니다. 감사합니다!!

  • @hoya0690
    @hoya0690 2 года назад

    인제 잘 작동됩니당^^ 단 출력^^

  • @hoya0690
    @hoya0690 2 года назад +2

    8:50 minute [minit] 미니트라고 발음합니다. 미뉴엣이 아닙니다.😁

    • @kooktv8638
      @kooktv8638 9 месяцев назад +1

      미뉴엣 미뉴엣 그래서 엄청 신경쓰여요😂

  • @Dolphin-fw7ws
    @Dolphin-fw7ws 5 лет назад

    #include
    int getDays(int month, int day) // 무슨달 무슨 날인지 입력받
    {

    int i , sum = 0; // i와 sum을 초기화
    for( i= 1; i < month; i++) //i는 1부터 시작해서 month에 도달할때까지 i를 더해나가면서 반복한다
    {
    if(i == 2) //윤년 감안하지 않음.
    {
    sum += 28;

    }
    else if(i % 2 == 0)
    {
    sum += 30;


    }
    else
    {

    sum += 31;
    }

    }

    return sum + day; //sum은 특정한달까지의 날자개수구하는거
    } //day는 몇날 몇일이기때문에 그냥 그대로더해줌
    int main(void)
    {
    int month, day;
    scanf("%d,%d", &month,&day );
    printf("1월 1일부터 해당 날짜까지의 거리는 %d일 입니다.", getDays(month, day));



    return 0;
    }
    횐님들 2월로 치면 작동을안하네요. 뭐가문제인지 ;;; 2월 10일 치면 38일이 나와야하는디

  • @김재민-n1c3r
    @김재민-n1c3r 6 лет назад +17

    갈수록 어려워지는데요.... 내가 못하는 건가?

  • @jammmm-mm
    @jammmm-mm 4 года назад

    저는 강의 스탑시켜놓고 혼자서 만들어본 다음에 들어서 완전 다르게 했네요ㅋㅋㅋ for문으로 할 생각은 못 했어요ㅠㅠ
    int getDays(int month, int day)
    {
    int countDays = 0;
    if(month!=1 && month!=2 && month < 9)
    {
    countDays -= 1 + ((month+1)/2);
    }
    else if(month >= 9)
    {
    countDays -= 1 + (month/2);
    }

    while(month > 1)
    {
    month -= 1;
    countDays += 31;
    }
    countDays += day;
    return countDays;
    }
    이렇게 해도 8월 전후로 짝/홀수달 날짜수가 바뀌는 거 해결되더라구요!

  • @163-u7e
    @163-u7e 5 лет назад +1

    너무재밋어여^.^!!!!!!!!

  • @jh-gp1cm
    @jh-gp1cm 4 года назад

    정주행중 9강/20강 쉽다~~

  • @서울변호사
    @서울변호사 3 года назад

    유익했어요~~~~

  • @박세진-d5v
    @박세진-d5v 6 лет назад +8

    if(month % 2 == 0)이면 30일이라고 하신것 같은데 8월은 31일이에요.
    문법공부에서는 중요하진 않지만..

  • @park26943158
    @park26943158 3 года назад

    #include
    //특정한 금액을 받아서 가장 적은 거스름 화폐의 개수를 구하는 함 수
    void smallest(int number) ▶1)
    {
    int count=0;
    while (number>=50000)
    {
    number-=50000;
    count++;
    }
    while (number>=10000)
    {
    number-=10000;
    count++;
    }while (number>=5000)
    {
    number-=5000;
    count++;
    }while (number>=1000)
    {
    number-=1000;
    count++;
    } ▶2)
    }
    int main(void)
    {
    int number;
    printf("금액을 입력하세요:");
    scanf("%d",&number) ;
    printf("최소로 줄 수 있는 화폐의 개수는 %d개 입니다./n",number);
    return 0;
    }
    ▶1과 2처럼 시간 더하기 프로그램처럼 전역변수 개념으로 최소 화폐 갯수 구하기 프로그램 만드려고
    int smallest(int number)로 바꾸고, return number;
    없애는 것은 왜 답이 안 나올까요?

  • @TV-eo4rp
    @TV-eo4rp 4 года назад +1

    좋은 강의 감사합니다. 혹시 PPT자료 다운가능한가요??

  • @ckswh0414
    @ckswh0414 6 лет назад

    시간날때마다 조금씩 보고있습니다 ㅎㅎ 강의를 보고 D-day 계산기를 한번 만들어 봤는데요. 정확한지는 모르겠네요...
    #include
    int getDays(int year, int month, int day){
    int i, sum = 0;
    for(i=0; i

  • @조문성-i4u
    @조문성-i4u 4 года назад

    12:44 int smallest(int number) 를 할때 (int number) 이 부분은 혹시 전역 변수와 같은 개념인가요?

    • @0109727
      @0109727 3 года назад

      3개월이나 지났지만 답변해드리자면 int number는 smallest 함수의 지역변수입니다.
      따라서 smallest 함수가 종료되는 순간(리턴 되는 순간) 메모리에서 사라지게 됩니다.
      쉽게 이해해보시고 싶으시면 smallest 함수에 month += 1000; 이라는 코드를 추가해보세요.
      smallest 함수에서 month에 1000을 더해줬지만 smallest 함수가 끝나는 순간 메모리에서 사라지기 때문에 smallest 함수를 몇 번을 호출을 해봐도 그 이후에 month 값을 출력을 해보시면 원래 처음 입력 받은 month값 그대로인 것을 알 수 있습니다.

  • @jjy1212
    @jjy1212 4 года назад

    // 특정한 금액을 받아서 가장 적은 거스름 화폐의 갯수를 구하는 함수입니다.
    개수 -> 갯수

    • @jjy1212
      @jjy1212 4 года назад

      @@nvn9196 갯수
      [명사] '개수2(個數)'의 비표준어.
      개수가 맞네요 :)

  • @혼코노_키드
    @혼코노_키드 3 года назад

    자료구조 관련한 강의도 혹시 올라올까요??

  • @phalssal
    @phalssal 3 года назад

    이때 사용하신 피피티 파일 올려주실 수 있으신가요ㅠㅠ?

  • @권성훈-i2x
    @권성훈-i2x 4 года назад +1

    안녕하세요 강의 잘 보고 있습니다.
    지폐의 개수를 단순히 카운트 하는 것 보다, 5만원짜리가 몇개, 1만원짜리가 몇개등 개수를 각각 나타내면 실생활에서자주 쓰이므로 더 좋을것 같았습니다.
    그래서 비슷하지만 조건이 더 적은 3자리 숫자에서 각자리 숫자를 합하는 프로그램을 한번 만들어 봤습니다.
    예를들어 623이면 6+2+3=11 처럼 나오게 끔요. (이를 응용하면 지폐 카운트로 쉽게 만들 수 있죠.)
    여기서 궁금한게 사용자 정의 함수에서는 한번에 1개의 값만 반환 가능한가요?
    (예를들면 623에서 6,2,3을 각각의 조건에 따라서 출력하게끔요)
    지금은 방법을 몰라서 3개의 함수를 각각 정의시켰는데, 만약 여러개의 값을 반환이 가능하다면 어떻게 하는지 궁금합니다.
    #include
    // num100은 100의자리 숫자
    int num100(int number)
    {
    int count100=0;
    if(number>=100)
    {
    while(number>=100)
    {
    number-=100;
    count100++;
    }
    return count100++;
    }

    else
    { return 0;
    }
    }
    // num10은 10의 자리 숫자
    int num10(int number)
    {
    int count10=0;
    if(number>=10)
    {
    while(number>100)
    {
    number-=100;
    }
    while(number>=10)
    {
    number-=10;
    count10++;
    }
    return count10++;
    }

    else
    { return 0;
    }
    }
    // num1은 1의자리 숫자
    int num1(int number)
    {
    int count1=0;
    if(number>=1)
    {
    while(number>100)
    {
    number-=100;
    }
    while(number>10)
    {
    number-=10;
    }
    while(number>=1)
    {
    number-=1;
    count1++;
    }
    return count1++;
    }

    else
    { return 0;
    }
    }
    int main (void)
    {
    int number;
    printf("3자리 숫자를 입력하세요 : ");
    scanf("%d", &number);
    int sum=num100(number) + num10(number) + num1(number);
    printf("각자리 숫자의 합은 %d입니다.",sum);
    return 0;
    }

  • @지쿠-v9r
    @지쿠-v9r 6 лет назад +6

    이거 처음보면 뭔소리지? 알기 힘들어용

  • @퐁퐁도도
    @퐁퐁도도 6 лет назад +4

    #include
    int year;
    int month;
    int sumday;
    int day;
    int year2;
    int month2;
    int sumday2;
    int day2;
    void leapyearcheck()
    {
    if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
    {
    sumday ++;
    sumday += (year * 365);
    }
    else
    {
    sumday += (year * 365);
    }
    }
    void leapyearcheck2()
    {
    year2 = year2;
    if ((year2 % 4 == 0) && (year2 % 100 != 0) || (year2 % 400 == 0))
    {
    sumday2 ++;
    sumday2 += (year2 * 365);
    }
    else
    {
    sumday2 += (year2 * 365);
    }
    }
    void monthchange()
    {
    if (month == 1)
    {
    sumday += (31);
    }
    else if (month == 2)
    {
    sumday += (28+31);
    }
    else if (month == 3)
    {
    sumday += (31+31+28);
    }
    else if (month == 4)
    {
    sumday += (30+31+28+31);
    }
    else if (month == 5)
    {
    sumday += (31+31+28+31+30);
    }
    else if (month == 6)
    {
    sumday += (30+31+28+31+30+31);
    }
    else if (month == 7)
    {
    sumday += (31+31+28+31+30+31+30);
    }
    else if (month == 8)
    {
    sumday += (31+31+28+31+30+31+30+31);
    }
    else if (month == 9)
    {
    sumday += (30+31+28+31+30+31+30+31+31);
    }
    else if (month == 10)
    {
    sumday += (31+31+28+31+30+31+30+31+31+30);
    }
    else if (month == 11)
    {
    sumday += (30+31+28+31+30+31+30+31+31+30+31);
    }
    else if (month == 12)
    {
    sumday += (31+31+28+31+30+31+30+31+31+30+31+30);
    }
    }
    void monthchange2()
    {
    if (month2 == 1)
    {
    sumday2 += (31);
    }
    else if (month2 == 2)
    {
    sumday2 += (28+31);
    }
    else if (month2 == 3)
    {
    sumday2 += (31+31+28);
    }
    else if (month2 == 4)
    {
    sumday2 += (30+31+28+31);
    }
    else if (month2 == 5)
    {
    sumday2 += (31+31+28+31+30);
    }
    else if (month2 == 6)
    {
    sumday2 += (30+31+28+31+30+31);
    }
    else if (month2 == 7)
    {
    sumday2 += (31+31+28+31+30+31+30);
    }
    else if (month2 == 8)
    {
    sumday2 += (31+31+28+31+30+31+30+31);
    }
    else if (month2 == 9)
    {
    sumday2 += (30+31+28+31+30+31+30+31+31);
    }
    else if (month2 == 10)
    {
    sumday2 += (31+31+28+31+30+31+30+31+31+30);
    }
    else if (month2 == 11)
    {
    sumday2 += (30+31+28+31+30+31+30+31+31+30+31);
    }
    else if (month2 == 12)
    {
    sumday2 += (31+31+28+31+30+31+30+31+31+30+31+30);
    }
    }
    void dayplus()
    {
    sumday -= day;
    }
    void dayplus2()
    {
    sumday2 -= day2;
    }
    int main(void)
    {
    printf("[ SYSTEM ] 현재 년도 를 입력해주세요
    ");
    printf("[ ANSWER ] ");
    scanf("%d", &year);
    getchar();
    leapyearcheck();
    printf("[ SYSTEM ] 현재 월달 을 입력해주세요.
    ");
    printf("[ ANSWER ] ");
    scanf("%d", &month);
    getchar();
    monthchange();
    printf("[ SYSTEM ] 현재 일수 를 입력해주세요.
    ");
    printf("[ ANSWER ] ");
    scanf("%d", &day);
    getchar();
    dayplus();
    //printf("%d
    ", sumday);
    printf("[ SYSTEM ] 목표년도를 입력해주세요.
    ");
    printf("[ ANSWER ] ");
    scanf("%d", &year2);
    getchar();
    leapyearcheck2();
    printf("[ SYSTEM ] 목표 월달 을 입력해주세요.
    ");
    printf("[ ANSWER ] ");
    scanf("%d", &month2);
    getchar();
    monthchange2();
    printf("[ SYSTEM ] 목표 일수 를 입력해주세요.
    ");
    printf("[ ANSWER ] ");
    scanf("%d", &day2);
    getchar();
    dayplus2();
    //printf("%d
    ",sumday2);
    printf("[ SYSTEM ] D-DAY %d일 입니다.", (sumday - sumday2) * -1);
    return 0;
    }
    윤년까지 판독하여 d-day를 계산할수있는걸 제가 직접 많은시간 과 시행착오를 거치고 만들었습니다

    • @퐁퐁도도
      @퐁퐁도도 6 лет назад

      다만 입력하는것에만 윤년 평년 판독이 가능하고 거슬러 올라가는 과정중 윤년이 포함되서 계산되는것은
      구현하지 못했습니다 그것까지할 엄두가 안나네요

    • @name4014
      @name4014 6 лет назад

      엄청 노럭하셨네요.... 대단 하세요!

  • @신지훈-x3q
    @신지훈-x3q 2 дня назад

    return을 넣는 이유를 알 수 있을 까요

  • @studiochan2397
    @studiochan2397 5 лет назад +1

    선생님 안녕하세요! 저는 취미로 선생님 방송을 보며 프로그래밍을 배우는 예비 고2입니당! 그런데 마지막에 날짜를 계산하는 프로그램에서 계속 이상한 값이 나오네요ㅜㅜ 그래서 1시간동안 토씨하나하나 확인했는데 어디가 틀렸는지를 모르겠어요ㅜ
    혹시 그냥 제 핑계일수도 있겠지만 컴퓨터 사양에따라 값이 달라지는건 아닌ㄱ...
    그럴리가 없겠죠 도대체 어디를 틀린걸까나ㅜㅜㅜㅜ여기서 포기하면 애초에 시작을 안하는게 좋았겠지요?ㅋㅋ 한번 4시간이 걸리든 밤을세든 한번 그 틀린 토씨를 찾아 보도록 하겠습니다~~! 말이 길었네요ㅜ 그냥 하고픈 말은 이런 엄청난 강의 만들어주셔서 감사하고요ㅠ 앞으로도 마지막강의 까지 잘부탁드립니다!!!😙

    • @itsfunhaha
      @itsfunhaha 5 лет назад +1

      저도 공부중인데 영상에 나온 프로그램이 조금 틀린 것 같아요... 7월까지는 괜찮지만 8월부터는 짝수달이 31일, 홀수달이 30일이라 저대로 프로그램 작성하시면 안되고 8월달부터 둘로 나눠서 작성해야 할 것 같네요. 선생님이 예시로 돌려보신 날짜인 3월 1일은 8월 전이라 관계가 없고 12월 22일은 어차피 홀수달 2개 짝수달 2개가 지난 후라 날짜가 맞게 나와서 오류를 발견하지 못하신 것 같아요...

  • @김-m1p6u
    @김-m1p6u 5 лет назад

    화폐 갯수를 가장 적게 구하는 프로그램 만드는데 실행이 안됩니다. int main (void)다음 {}사이에 오류가 있는거 같은데 대체 뭐가 틀렸을까요 ㅠㅠ
    int main(void)
    {
    int number;
    printf("금액을 입력하세요 : ");
    scanf("%d", &number);
    printf("최소로 줄 수 있는 화폐의 갯수는 %d개 입니다.
    ", smallest(number));
    return 0;
    }

  • @김지훈-c9x9d
    @김지훈-c9x9d 7 месяцев назад

    '24시간 마법진' 이 뭔지 궁금한 1인
    여름에 저거 있으면 24시간 모기 방어가 가능한가 ?

  • @hoya0690
    @hoya0690 3 года назад

    for 명령으로 숫자를 나열하는 문젠데욥
    1360
    259 이런 식으로 나열하는 밥법 쫌 아르키 주세영^^
    48
    7
    for 명령 이거 누가 만들었나영?^^ 도무지 아리까리해서 알 수가 없네영^^
    for 명령 숫자 나열하는 법부터 자세히 쫌 아르키 주시믄 좋겠쩌영^^

  • @Mingdoong6025
    @Mingdoong6025 Год назад

    hour %=24; 는 입력하지 않아도 정상적으로 출력되는데 해당 변수를 입력해주신 이유가 궁금합니다!

    • @개꿀잠
      @개꿀잠 Год назад +1

      25시가 없기때문입니다 예를들어 hour 가 25시 가 되버리면 24시 디지털 시계상에는 1시 라고 되죠

  • @사과김-j8u
    @사과김-j8u 4 года назад

    하는도중 오류가 생겨서 질문드립니다......
    #include
    int smallest(int number)
    {
    int count = 0;
    while(number >= 50000)
    {
    number -= 50000;
    count++;
    }
    while(number >= 10000)
    {
    number -= 10000;
    count++;
    }
    while(number >= 5000)
    {
    number -= 5000;
    count++;
    }
    while(number >= 1000)
    {
    number -= 1000;
    count++;
    }
    while(number >= 500)
    {
    number -= 500;
    count++;
    }
    while(number >= 100)
    {
    number -= 100;
    count++;
    }
    while(number >= 50)
    {
    number -= 50;
    count++;
    }
    while(number >= 10)
    {
    number -= 10;
    count++;
    }
    }
    int main (void)
    {
    int number;
    printf("금액을 입력하세요 : ");
    scanf("%d" , &number);
    printf("최소로 줄수있는 화폐의 개수는 %d개 입니다.
    " , smallest(number));
    return 0;
    }
    이렇게했는데도 500을 입력하면 1이나와야 하는데 500이나오고 3700을 입력하면 3700이나옵니다...그냥 입력한 수가나와요,,,, 혹시 오류라도 있는건가요?

  • @이모균-y2e
    @이모균-y2e 5 лет назад +7

    hour %= 24;
    이 부분을 왜 해줘야 하는 지 모르겠습니다.
    안 해줘도 되지 않나요??

    • @개인계정-y5v
      @개인계정-y5v 5 лет назад +5

      더해지는 시간이 24시간이 넘을 수도 있으니까, 24시가 넘어가면 0시부터 다시 들어가야해서 그런거 아닐까요ㅎ

  • @시온-h4w
    @시온-h4w 6 лет назад

    좋은강의 넘넘 감사합니다! hour, minute, minuteAdd 를 전역변수로 쓰셨는데 main함수나 counter 함수 안에서 사용할 수는 없을까요? 만약 가능하다면 어떻게 해야 좋을까요ㅜㅜ C언어를 막 배워나가는 중이라 많이 어렵네요ㅠㅡㅜ

    • @hanhanhan-nf1bk
      @hanhanhan-nf1bk 6 лет назад

      전역변수니까 그냥 평소대로 쓸수있지않을까요.

    • @returns0825
      @returns0825 6 лет назад

      static으로 되려나...?

  • @jewellwalker3409
    @jewellwalker3409 5 лет назад

    string.h 헤더파일을 추가해서 string 문자열 자료형은 사용할 수 없나요? c++ 강좌에서 나온거라 잘 모르겠네요..

  • @bosun7302
    @bosun7302 4 года назад

    근데 매개 변수형? 거기에는 꼭 뭘 써야하는 건가요?

  • @kirbyzq1944
    @kirbyzq1944 5 лет назад

    현재 어린(?)나이에 C를 배우고 있는데 학원에서 배웠을때 이해를 못했는데 동빈님 영상 보고 제대로 이해합니다! 그런데 궁금한 점이 있어요. n개의 수를 입력 받아서 그 수의 합을 구하려고 배열을 사용해서 함수를 만드려고 하는데 main 함수 밖에서 함수를 만드니까 for에서 i=1;i

  • @낭만만
    @낭만만 3 года назад

    마지막 문제에서 1월1일부터 현재의 날짜까지의 차이를 구하라는 문제는 365에서 반절인 178일날 다음일부터는 반대로 177로 다운되고 12월31일은 364일이 아닌 1일이 되어야 되지 않나요? 그렇게 짜면 프로그램이 많이 복잡해지나요? 그렇게 할려다가 한계에 부딪쳐서 도움을 바라는 마음에 댓글 남겨봅니다 ..

  • @kimjohann3780
    @kimjohann3780 4 года назад

    동빈나님 그러면 입출력 헤더파일을 선언하지않고 입출력함수를 직접 만들수 있나요?

  • @권기남-i1p
    @권기남-i1p 4 года назад

    왜 마지막 실습(1월 1일부터 현재 날짜까지의 날짜 차이 구하기)에서는 '#define month 12'를 하지 않나요?

    • @김민석-t8q6s
      @김민석-t8q6s 4 года назад

      month는 12라는 값으로 고정되어있지 않고, 사용자가 입력한 값에 따라 변동되기 때문인 것 같아요~

  • @june0163
    @june0163 2 года назад

    12월 22일 입력했더니 335나오고 12 31일 입력했더니 335나오던데 왜이런걸까요 또같이 했는데 말이죠

  • @출항
    @출항 7 лет назад

    윤년은 계산 안하되 원래 달의 날짜대로 하려면 이렇게 하면 되는건가요?#include int getdays(int month, int day)
    {
    int i, sum = 0;
    for(i = 1; i < month; i++)
    {
    if(i == 2)
    {
    sum += 28;
    }
    else if((i < 8)&&(i % 2 == 1))
    {
    sum += 31;
    }
    else if((i < 8)&&(i % 2 == 0))
    {
    sum += 30;
    }
    else if((i >= 8)&&(i % 2 == 1))
    {
    sum += 30;
    }
    else
    {
    sum += 31;
    }
    }
    return sum + day;
    }
    int main(void)
    {
    int month, day;
    printf("1월 1일 부터 거리를 구할 날짜를 입력하세요.(예시 3월 1일= 3 1) : ");
    scanf("%d %d", &month,&day);
    printf("1월 1일부터 그 날짜까지의 거리는 %d일입니다.", getdays(month,day));
    return 0;
    }

  • @최휘-k5b
    @최휘-k5b 7 лет назад

    11:20 컴파일후 실행 하는데 이상한 현상이 발생하네요... 저번에 했던 1000초는 16분 40초 이 프로그램이 뜨고요... 직접 프로그램 열어서 실행시키면 시 입력하고 분 입력하고 더할 분 입력하고 엔터 누르면 그냥 꺼집니다 ㅠㅠ 뭐가 문제일까요? 3번 이상 체크했는데

    • @준현배-z4z
      @준현배-z4z 4 года назад

      저도 똑같이 뜨네요ㅠㅠㅠㅠ

  • @forunforgettableyou3029
    @forunforgettableyou3029 4 года назад

    그럼 혹시 *를 연속해서 표시하는 함수를 이용한 직사각형을 표시하는 프로그램은 어떻게 짜야하나요..? FOR이랑 뭘 써야하는지 모르겠어요 ㅠㅠ

  • @user-te3oh1gn7q
    @user-te3oh1gn7q 6 лет назад

    강의 재밌습니다..근데 캘린더 보면 month가 2의 배수여도 31일인것도 있던데 영상 처럼 해도 정확한건가요?

    • @a22819862
      @a22819862 6 лет назад

      ㄴㄴ안정확함

    • @dongbinna
      @dongbinna  6 лет назад +4

    • @returns0825
      @returns0825 6 лет назад

      @@dongbinna 원리만 배우면 되니까요! 뭐 어때요 ㅎㅎ

    • @ash_smoke
      @ash_smoke 5 лет назад

      ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ개웃기노

    • @bosun7302
      @bosun7302 4 года назад

      @@dongbinna ㅋㅋㅋㅋㅋㅋㅋㅋ

  • @wootakato
    @wootakato 4 года назад

    계속 시간이나 분을 입력하고 엔터를 누르면 cmd 창이 꺼지는데 어떡하나요,,

  • @user-xj6zc2mz4u
    @user-xj6zc2mz4u 5 лет назад

    저 궁금한게 생겼는데, 정확한 void의 뜻이 뭐죠?? 언제 쓰고 언제 안쓰는지 너무 헷갈려서요 ㅠㅠ..

  • @sulmilee4584
    @sulmilee4584 6 лет назад

    선생님~ 항상 잘 보고 있어요 :) 그런데 저 마지막 프로그램 1월 1일부터 현재 날짜 차이를 구하는 프로그램이요. 10월은 10월 1일부터 10월 30일까지 모두 274일이라고 뜨는데 왜 그런 건가요? 9월과 11월은 또 정상적으로 작동하네요.

  • @EEhgnoy
    @EEhgnoy 4 года назад

    화폐 개수 세는 프로그램에서 전역변수에 int number, count=0를 넣고
    int smallest(int number)를 void smallest()로 바꾸고
    main함수에서 int number를 삭제 하였는데 오류가 떴어요.
    1. 위에 말씀드린대로 한다면 프로그램 실행은 힘든가요?
    2. count가 정수형이라서 smallest함수형이 int인가요?
    3. while문이 너무 많아서 그러는데 while의 개수는 못 줄이나요?

  • @eyexfree
    @eyexfree 6 лет назад

    질문 있습니다. 뭐가 문제인지 모르겠는데요
    이렇게 입력하면 금액을 이것저것 입력해도
    거슬러 줄수 있는 화폐 개수가 계속 0으로 나오는거죠?
    # include
    int smallest(int number)
    {
    int count = 0;
    while(number >= 50000)
    {
    number -= 50000;
    count++;
    }
    while(number >= 10000)
    {
    number -= 10000;
    count++;
    }
    while(number >= 5000)
    {
    number -= 5000;
    count++;
    }
    while(number >= 1000)
    {
    number -= 1000;
    count++;
    }
    while(number >= 500)
    {
    number -= 500;
    count++;
    }
    while(number >= 100)
    {
    number -= 100;
    count++;
    }
    while(number >= 50)
    {
    number -= 50;
    count++;
    }
    while(number >= 10)
    {
    number -= 10;
    count++;
    }
    return count;
    }
    int main(void)
    {
    int number;
    printf("금액을 입력하세요 : ");
    scanf("d", &number);
    printf("최소로 줄 수 있는 화폐의 개수는 %d 개입니다.
    ", smallest(number));

    return 0;
    }

    • @vs5ws
      @vs5ws 5 лет назад

      scanf("d", &number); 에 d -> %d 로 바꾸니 되네용

  • @감아차기장인손흥민
    @감아차기장인손흥민 4 года назад

    hour+=minute/60 이 무슨 소리인가요? 12+=80/60 으로 보는건가요?

    • @dongbinna
      @dongbinna  4 года назад +2

      분(minute)을 60으로 나눈 '몫'이 시간(hour) 더해지도록 해주는 것입니다. 예를 들어 59분이면 0시간, 60분이면 1시간, 239분이면 3시간, 241분이면 4시간, ... 이런 식입니다.

    • @감아차기장인손흥민
      @감아차기장인손흥민 4 года назад

      감사합니다.

  • @노다지-g5u
    @노다지-g5u 6 лет назад +1

    12월 22일이 생일이시군요 ㅋ

    • @얀트러블
      @얀트러블 5 лет назад

      저도 생일 12월22일인데
      똑같네요.

  • @김선영-n9d4b
    @김선영-n9d4b 4 года назад

    Hour을 왜 24로 나눈 나머지로 계산하는지 모르겠어요 ..

  • @siasia-c4l
    @siasia-c4l 4 года назад

    근데 scanf 한 후에 괄호에서 &는 왜 하는건가욤..? 전에 설명 나왔던것같은데 어떤영상인지도 기억 안나고 까먹어서요 ㅜ

    • @이성곤-p8m
      @이성곤-p8m 4 года назад

      쓰레기값이 들어가지않게 주소를 지정해준거라고 생각하면 됩니다

  • @HD-vx2tf
    @HD-vx2tf 3 года назад

    11:46

  • @wujooin
    @wujooin 6 лет назад

    counter() 라는 함수의 이름은 사용자 멋대로 바꿔도 되는건가요? counter()라고 쓰셨지만 abc()이렇게 써도 괄호 안의 내용만 같다면 상관없나요? 아니면 counter()이라는 이름 자체가 함수의 이름이 돼서 그 함수의 기능을 하는 건가?

    • @junyeongmint7499
      @junyeongmint7499 6 лет назад

      바꿔도 상관없습니다

    • @yulupang
      @yulupang 6 лет назад

      바꿔도 됩니다
      이름 지을 때는 나중에 알아보기 쉽게 짓는게 났겠죠?

  • @itsnotyoursopps5874
    @itsnotyoursopps5874 4 года назад

    #include
    int getDays(int month, int day)
    {
    int i, sum = 0;
    for(i=1; i < month; i++)
    {
    if(i == 2)
    {
    sum += 28; // 윤년 x 가정
    }
    else if(i % 2 == 0)
    {
    sum += 30;
    }
    else
    {
    sum += 31;
    }
    }
    return sum + day;
    }
    int main(void)
    {
    int month, day;
    char o;
    while(1)
    {
    printf("현재 날짜는 몇월 몇일입니까? : ");
    scanf("%d %d", &month, &day);
    printf("1월 1일부터 현재 날짜까지의 차이는 %d일 입니다.
    ", getDays(month, day) - 1);
    getchar();
    printf("계산을 계속 진행하시겠습니까? (Y, N)");
    scanf("%c", &o);
    if(o == 'y' || o == 'Y')
    {
    continue;
    }
    else if(o == 'N' || o == 'n')
    {
    break;
    }
    }
    return 0;
    }

  • @승범-i5h
    @승범-i5h 6 лет назад

    실행까지는 됬는데 명령어 프롬포트의 검은화면에서 글자가 안떠요

    • @승범-i5h
      @승범-i5h 6 лет назад

      #include
      int getDays(int month, int day)
      {
      int i, sum = 0;
      for(i = 1; i < month; i++)
      {
      if(i == 2)// 이 프로그램에서는 윤년을 감안하지 않습니다.
      {
      sum += 28;
      }
      else if(i % 2 == 0)
      {
      sum += 30;
      }
      else
      {
      sum += 31;
      }
      }
      return sum + day;
      }
      int main (void)
      {
      int month, day;
      scanf("%d %d", &month, &day);
      printf("1월 1일부터 해당 날짜까지의 거리는 %d입니다.", getDays(month, day));
      return 0;
      }
      이거다했는데 검은화면에서 안됨

    • @returns0825
      @returns0825 6 лет назад

      @@승범-i5h 작성하신거보면 안뜨는게 맞아요
      검은 화면 떠있을 때 3월 4일을 입력한다고 치면 그냥 3 4를 입력하면 더ㅐ요
      +그리고 메인함수에 사용자정의함수 호출도 안하셨어요

    • @returns0825
      @returns0825 6 лет назад

      @@승범-i5h scanf문 밑에
      getDays();쓰세용

  • @justinseo5323
    @justinseo5323 7 лет назад

    시간 더한기 프로그램 실습을 하고 있는데 컴파일하고 있는 과정에서 counter 함수 아래에 중괄호에서 오류가 뜨네요.. 뭐가 문제인 걸까요?

  • @hoya0690
    @hoya0690 2 года назад

    피라미드가 안만들어지여. 처음엔 잘 작동했는데......^^

  • @변정현-e1g
    @변정현-e1g 4 года назад

    마지막에 printf부분은 실행이 안되는데 왜 그럴까요ㅜㅜㅜ
    알려주세요 프로그래밍 천재님들ㅜㅜ
    #include
    int getDays(int month, int day)
    {
    int i, sum=0;//i와 sum을 초기화
    for(i=1; 1

    • @울래기
      @울래기 4 года назад

      처음에 사용자함수 정의하실때 for 구문에서
      "(i=1; i

    • @변정현-e1g
      @변정현-e1g 4 года назад

      이현종 헉 그렇군요 감사합니당!!

  • @라스클-k2h
    @라스클-k2h 5 лет назад

    hour %= 24를 왜 한건지 이해가 잘안되는데 설명해주실 분 안계신가요 ㅜㅜ

    • @라스클-k2h
      @라스클-k2h 5 лет назад

      아 그런 의미군요! 알려주셔서 정말로 감사합니다 ㅜㅜ 몰라서 몇 일간 그 문자들이 머리에서 떠나지 않더라고요 이런 의미였군여! 정말로 알려주셔서
      감사합니다!

  • @이수연-o1z9b
    @이수연-o1z9b 5 лет назад

    화폐 개수 구해주는 프로그램에서 어떻게 개수가 구해지는지 이해가 안가네요.

    • @앵두새-d4o
      @앵두새-d4o 5 лет назад

      71000원이면 오만원 1장, 만원 1장 천원 1장
      1. 가장 큰단위화폐 오만원을 한번뺄수있으면 뺌 (금액 21000원, count=1)
      2. 오만원을 못빼는 경우에는(21000원) 두번째로 큰 단위의 금액을 뺌 (금액 11000원, count=2)
      3. 다시 만원으로 뺄수있는 금액(11000원)이므로 한번더 만원으로 총금액을 빼줌(1000원, count=3)
      4. 이하 반복, count =4

    • @이수연-o1z9b
      @이수연-o1z9b 5 лет назад

      @@앵두새-d4o -=의 뜻을 몰랐어서 이해가 안갔었네요. 이제 확실히 알았습니다 ^^, 알려주셔서 감사해요

  • @LEE_JUN_SEO
    @LEE_JUN_SEO 6 лет назад +1

    1:22 에 %c를 %d라고 발음하셨네 ㅎ

  • @룰루랄라-u1m
    @룰루랄라-u1m 6 лет назад +2

    어렵다 .. ㄷㄷ

  • @참치마요네즈-q6u
    @참치마요네즈-q6u 3 года назад

    이중반복문부터 매우 어려워지는군옄ㅋㅋ 벼락치기 힘드네

  • @정인호-c8n
    @정인호-c8n 5 лет назад

    항상 좋은강의 잘 보고있습니다! 궁금한게 있는데, 화폐의 개수를 구하는 프로그램에서, 마지막에 최소로 줄수 있는 화폐의 개수는 %d개 입니다. 하고 왜 smallest(number)가 들어가는 건가요? 제 생각엔 count가 들어가야하는거 같은데 해보면 안되네요.. 이해가 잘 되지 않아서 질문드립니다.

    • @oeanb
      @oeanb 5 лет назад

      정인호 와 저도 이 강의에서 다 이해가는데 그거 하나만 이해가 안가더라구요 제가 생각해본게
      전역함수 int smallest(int number)에서 마지막에 return counter; 있는데 이게 의미하는게 ‘전역함수 smallest(number)에서 마지막에 counter를 반환해라’여서 counter의 총 반복수를 의미하여 smallest(number)가 %d가 아닌가 싶네요
      그래서 3700원 입력했을 때 1000원 단위 3번의 counter 500원 단위 1번의 counter 100원 단위 2번의 counter으로 총 6개로 나오는거 같아요

  • @banun7271
    @banun7271 5 лет назад

    int counter() 할때 counter말고 다른거 마음대로 해도 되는건가요?아님 몇개가 정해저 있는건가요?

  • @user-qx1hd2bi8i
    @user-qx1hd2bi8i 6 лет назад

    11:14
    똑같이 해서 실행하니깐
    이 프로그램은 초를 시분초로 바꿔줌니다
    (sec)를 입력하십시오:
    이렇게 나오는데 어떻게 해야하나요??

    • @jtslike
      @jtslike 6 лет назад

      제대로 입력했는지 하나하나 잘 보세요 문제점이 있을 수도 있어요

  • @jhbaek7653
    @jhbaek7653 5 лет назад

    왜 저는 3700원이 2개로 뜰까요?;;;ㅠㅠ

    • @박성빈333
      @박성빈333 5 лет назад

      @@_random-person while (number >= 1000);

  • @eyelamp8271
    @eyelamp8271 4 года назад

    11 51

  • @kimjhon6090
    @kimjhon6090 6 лет назад +2

    이번 동영상부터 어렵다.... 이해를 못하겠음

  • @returns0825
    @returns0825 6 лет назад +1

    #include
    int second, minute, hour, addtime;
    void timecalculator(void)
    {
    second += addtime;
    minute += second /= 60;
    hour += second / 3600;
    hour += minute / 60;
    second %= 60;
    minute %= 60;
    }
    int main(void)
    {
    printf("Hour : ");
    scanf("%d", &hour);
    printf("
    Minute : ");
    scanf("%d", &minute);
    printf("
    Second : ");
    scanf("%d", &second);
    printf("
    Addtime(Sec) : ");
    scanf("%d", &second);
    timecalculator();
    printf("

    Result is %dHour %dMinute %dSecond", hour, minute, second);
    return 0;
    }
    시간 덧셈 초단위까지...

  • @빈쭈-g1e
    @빈쭈-g1e 3 года назад

    내가 이해를 못하는걸수도있지만 c언어 처음하는 사람들이 들을 만한 강의는 아닌듯.... 너무 혼자 앞서가심...

  • @youngyi6858
    @youngyi6858 Год назад

    false 팰스 break 브리크 minute 미뉴엣 .....
    신뢰성이 팍팍 떨어지네요 ㅠㅠ
    내용이 나쁘지는 않은데...