c언어 함수

조회수 1844회

문제가 두개의 정수를 입력 받아서 구구단을 출력하는 건데 함수를 이용해서 해야합니다. 예를 들어 3 5를 입력하면 3 4 5의 구구단을 출력해야고 5 3을 입력해도 3 4 5를 출력해야합니다. 제가 밑에 소스코드를 짜 봤는데 실행이 안됩니다. 이거 수정좀 부탁드리겠습니다.

include

void Max(int a, int b);

void MIn(int a, int b);

int main(void)

{

  int num1, int num2;
  printf("정수 입력: ");
  scanf_s("%d %d", &num1, &num2);
  printf("%d", Max(num1, num2));
  printf("%d", Min(num1, num2));

  return 0;

}

void Max(int a. int b) {

int i;

while (a > b)
{
    for (b; b <= a; b++)
    {
        for (i = 1; i < 10; i++)
        {
            printf("%d * %d = %d", a, b, a*b);
        }
    }
}

}

void Min(int a, int b)

{

int i;

while (b > a)
{
    for (b; b <= a; b++)
    {
        for (i = 1; i < 10; i++)
        {
            printf("%d * %d = %d", a, b, a*b);
        }
    }
}

}

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • #include <stdio.h>
    
    void gugu(int a, int b);
    
    int main(void)
    {
      int num1, num2;
      printf("정수 입력: ");
      scanf("%d %d", &num1, &num2);
      gugu(num1, num2);
    
      return 0;
    }
    
    void gugu(int a, int b) {
    
        int max, min;
        int i;
        if(a<b){            // 매개변수를 비교
            max = b;
            min = a;
        }else if(b<a){    
            max = a;
            min = b;
        }else{                // 매개변수 두 수가 같을때
            max = a;
            min = a;
        }
    
        if(0<a&&0<b){        // 매개변수 둘다 0 또는 음수가 아닐때
        for(min; min<=max; min++){
            for (i = 1; i < 10; i++){
                printf("%d * %d = %d\n", min, i, min*i);
            }
                printf("--------------------------------\n");
        }
        }else{                // 매개변수 둘 중 하나라도 0이나 음수가 들어올때
            printf("잘못된 입력입니다.");
        }
    }
    

    c툴이 없어서 해시코드 코드실행기로 짰습니다. c는 오랜만이라서 생각나는대로 짜긴 했으나, 코드실행기에서는 scanf 문을 썼는데도 입력이 되질 않네요. 구구단 같은 경우 응용이 가능한 예제소스가 인터넷에 많습니다. 이해가 충분히 되셨으면 안보고 스스로 짜보시길..

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • c는 안해봤지만 답변은 할수있을것같네요. 일단 while(a<b) 안에 for(b; b<=a; b++ ) 이거부터 조건이 반대로 되어있어서 아예 출력이 안될거같고요.

    제일 안쪽 포문도 a * i나 b * i가 되어야 구구단이 정상적으로 출력되겠네요.

    애초에 max랑 min으로 두번 출력해줄 필요도 없을것같네요.

    입력받은 값을 한번 정렬하고 구구단 출력하는 메소드를 한번만 실행하면 될것같네요.

    뭐 원하시는 소스답변은 아닙니다만... 스스로 해보시면 훨씬 도움이 되실것같네요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)