카테고리 없음

1차시 과제

그나 2026. 4. 17. 11:04

배수와 약수

#include <stdio.h>

int main() {
    int a,b=0;
    scanf("%d %d",&a,&b);
    while (1) {
    if (a==0&&b==0){
        break;
    }
    if (b%a==0) {
        printf("factor\n");
    }
    else if (a%b==0) {
        printf("multiple\n");
    }
    else {
        printf("neither\n");
    }
    scanf("%d %d",&a,&b);
    }
    return 0;
}

while문에 참인 1을 넣어서 계속 반복되게 한 후, if문을 사용해서 a와 b가 모두 0이면 반복문을 나와서 종료되도록 했습니다.

그리고 b를 a로 나눈 값의 나머지가 0이면 약수이고, a를 b로 나눈 값의 나머지가 0이면 배수, 해당사항이 없으면 neither이 나오게 했습니다.

오븐시계

#include <stdio.h>

int main() {
    int hour,min,tim,a;
    scanf("%d %d",&hour,&min);
    scanf("%d",&tim);
    a=tim+min;
    if(a<60) min+=tim;
    else{
        hour = hour + a/60;
        min = a%60;
    }
    if(hour>=24){
        hour -= 24;
        min = a%60;
    }
    printf("%d %d",hour,min);
    
    
    return 0;
}

scanf로 입력 받은 뒤, 많이 나오는 min+tim을 간소화하기 위해 a라는 변수를 만들었습니다.

60분이 넘은 상황과 넘지 않은 상황을 구분하기 위해 if문을 사용했습니다.

넘은 상황에서, 분을 60으로 나눈 몫을 사용하여 시간으로 전환했고, 분을 60으로 나눈 나머지로 대입했습니다.

그리고 시간이 24시가 넘었을 때와 넘지 않았을 때를 구분하기 위해 또 한번 if문을 사용했습니다.

알람시계

#include <stdio.h>

int main() {
    int hour, minute=0;
    scanf("%d %d",&hour, &minute);
    minute -= 45;
    if (minute<0){
        hour -= 1;
        minute += 60;
    }
    if (hour<0){
        hour += 24;
    }
    printf("%d %d",hour,minute);
    
    return 0;
}

변수를 0으로 설정하고, minute에 45만큼 뺀 수를 대입합니다.

그리고 만약 분이 음수가 되면, 시간을 1시간만큼 빼고 분에 60만큼 더합니다.

만약 시간이 음수가된다면 시간에 24를 더합니다.

저작권

#include <stdio.h>

int main() {
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d",a*(b-1)+1);
    return 0;
}

a, b의 값을 입력받은 후, 두 변수의 평균값을 반올림하는 공식을 사용하여 출력하였습니다.

전자레인지

#include <stdio.h>

int main() {
    int sec,fmin,omin,tsec;
    sec = 0; fmin = 0; omin = 0; tsec = 0;
    scanf("%d",&sec);
        if (sec % 10 != 0) {
            printf("-1");
            return 0;
        }
        if (sec>=300){
        fmin += sec/300;
        sec = sec%300;
        }
        if (sec>=60){
        omin += sec/60;
        sec = sec%60;
        }
        if (sec>=10){
        tsec += sec/10;
        sec = sec%10;
        }
    printf("%d %d %d",fmin,omin,tsec);
    return 0;
}

이 코드에 나오는 가장 작은 값이 10이므로, 10 으로 나눠지지 않으면 -1이 나온 뒤, return 0;을 사용해서 코드를 종료하도록 했습니다.

만약 300보다 크거나 같다면 fmin에 입력 받은 값을 300으로 나눠서 더한뒤, 입력 받은 값을 300으로 나눈 나머지로 대입합니다. 아래 코드들도 마찬가지로 진행된 후, 출력됩니다.