Layer7 c언어 1차시 과제

이동규·2026년 4월 6일

Layer7과제

목록 보기
1/22

1065

문제

세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.

문제풀이

정수형으로 a, b, c를 scanf를 써서 받아온다. if문 3개를 사용해서 %(나머지연산자)로 짝수판별을 진행해 짝수가 맞다면 출력한다.

1065 코드

코드가 맛있지 아니하다

#include <stdio.h>
int main()
{
    int a, b, c;
    scanf("%d",&a);
    scanf("%d",&b);
    scanf("%d",&c);
    if (a % 2 == 0)
    {
        printf("%d\n",a);
    }
    if (b % 2 == 0)
    {
        printf("%d\n",b);
    }
    if (c % 2 == 0)
    {
        printf("%d\n",c);
    }
    
}

1351

문제

시작단과 마지막 단을 입력하면
그 구간의 구구단을 출력하는 프로그램을 작성하시오.

문제풀이

입력받을 두 정수형자료를 선언 후 scanf로 가져온 후 for문 안에 입력값을 이용해 몇단부터 몇단까지 출력할지를 하고 그 안에 출력하는 단의 구구단을 출력할 for문을 하나 더 넣어서 완성!한다.

코드

#include <stdio.h>
int main()
{
    int a, b;
    scanf("%d",&a);
    scanf("%d",&b);
    for(int i = a;i<=b;i++){
        for(int j=1;j<10;j++){
            printf("%d*%d=%d\n",i,j,i*j);
        }
    }
    return 0;
}

1083

문제

3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.

문제풀이

이 정말 마음에 들지않는 문제에는 10보다 작은 정수를 입력해야 한다는 조건이 있기에 별 생각없이 그냥 숫자 받아와서 입력한 숫자까지 반복하는 for문 받아온 다음에 if문으로 %로 3의 배수여부만 판단하기만 하면 정답처리를 해줘버리는 문제다.
이럴거면 그냥 369게임을 전제조건으로 두지 말던가

코드

#include <stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    for(int i = 1; i <= a; i++){
        if(i%3 == 0){
            printf("X ");
        }else{
            printf("%d ",i);
        }
    }
    return 0;
}

1274

문제

소수란, 약수가 1과 자기 자신 두 개 뿐인 수를 말한다.
어떤 수가 입력되면 그 수가 소수인지 판단하시오.

문제풀이

정수형 자료 입력을 받아온 후 for문에서 그 자료를 반복적으로 %연산자로 판단을해 짝수 여부를 판단하고 짝수면 결과출력 후 종료되고 모두 거짓이면 for문을 탈출해 홀수인 출력값에 도달한다.

코드

코드가 맛있지 않다

#include <stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    for(int i = a - 1;i>1;i--){
        if(a % i == 0){
            printf("not prime");
            return 0;
        }
    }
    printf("prime");
    return 0;
}

1358

문제

어떤 수 n을 입력받으면 다음과 같은 삼각형을 출력한다.
여기서 입력되는 n은 반드시 홀수이다.

문제풀이

n을 입력받고 for문에 몇줄 출력할지 형태에 맞게 생각하고 시행착오를 반복하며 때려넣어서 \n(줄바꿈)출력. 그다음 줄바꿈 전 for문 2개를 삽입해서 공백과 *을 출력한다(또 생각하고 넣어보고 이런식으로).

코드

#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
	{
        for (int i = 0; i < a-a/2; i++)
	    {
		        for (int j = 0; j <a/2-i; j++)
		        {
			        printf(" ");
		        }
		        for (int j = 0; j < 1 + 2 * i; j++)
		        {
			        printf("*");
		        }
		        printf("\n");	
	    }
    return 0;
    }
}

1132

문제

한 단어를 입력받아 출력한다.

문제풀이

문자열 [9] 이 길이로 만들고 받아서 출력한다 문자열을 자체로 주소여서 scanf를 할때 &가 필요없다 %s로 입출력

코드

#include <stdio.h>
int main(){
    char a[9];
    scanf("%s",a);
    printf("%s",a);
    return 0;
    }

1418

문제

어떤 문자열이 있을 때 문자 t의 위치를 모두 찾아 출력하시오.

문제풀이

문자열을 문제에서 주어진[11]크기로 지정하고 입력받는다. for문에 string.h라이브러리의 문자열 길이를 알려주는 strlen함수를 사용해 반복횟수를 설정하고 i=0으로 해서 문자열의 자리를 하나씩 돌며 't'를 검사하고 만약 't'가 있다면 i+1을 출력하는 형식으로 하면 완성된다.

코드

#include <stdio.h>
#include <string.h>
int main(){
    char a[11];
    scanf("%s",a);
    for(int i=0;i<strlen(a);i++){
        if(a[i]=='t'){
            printf("%d ",i+1);
        }
    }
}

결과

재미따재미따재미따

재미따재미따재미따


0개의 댓글