2020.01.07 8장 함수

2020. 11. 4. 00:23·프로그래밍 공부/C

  모든 예시들은 실전C프로그래밍(21세기사, 나중채_김도년_김영갑_박천수_박태순_양효식_임필옥_장문정_장 윤_한동일 공저)에 수록되어 있는 것들입니다.


 

 


 

 


[문제 1] 하나의 양의 정수 N을 입력 받아, 1부터 N까지의 합을 출력하는 프로그램을 작성하시오.

 

 

int add(int x, int y);

int main(){
    int N,sum=0,i,j;
    
    scanf("%d",&N);
    
    if(N%2==0)
    for(i=1,j=N;i<=N/2;i++,j--)sum+=add(i,j);
    else
    for(i=0,j=N;i<=N/2;i++,j--)sum+=add(i,j);
    printf("%d",sum);
    return 0;
}
    
int add(int x, int y){
    int sum=x+y;
    return sum;
}

 

[문제 2] 두 개의 양의 정수 A와 B를 입력 받아, A부터 B까지의 합을 계산하는 프로그램을 작성하시오.

 

 

int sum(int n);

int main(){
    int a,b;

    scanf("%d %d",&a,&b);
    printf("%d",sum(b)-sum(a-1));
    return 0;
}

int sum(int n){
    int sum;
    return sum=n*(n+1)/2;
}

 

[문제 3] 하나의 양의 정수 X를 입력 받아 다음 수식의 결롸를 출력하는 프로그램을 작성하시오

1 + (1+2) + (1+2+3)....+(1+2+...+X)

 

int sum(int n);
int main(){
    int X,sum=0;

    scanf("%d",&X);
    for(int i=1;i<=X;i++)sum=sum+sum(i);
    printf("%d",sum);
    return 0;
}

int sum(int n){
    int sum;
    return sum=n*(n+1)/2;
}

 

[문제 4] 2~9 사이의 정수 N을 입력 받아, 예시와 같이 숫자 N으로 사각형을 출력하는 프로그램을 작성하시오.

void print_row1(int x){
    for(int i=0;i<x;i++)printf("%d",x);

}
void print_row2(int x){
    for(int i=1;i<=x;i++){
    if(i==1||i==x) printf("%d",x);
    else printf(" ");
} 
}
int main(){

    int N;
    scanf("%d",&N);
    for(int i=1;i<=N;i++){
    if(i==1||i==N)print_row1(N);
    else print_row2(N);
    printf("\n");
	}
    
return 0;
}

[문제 5] 양의 정수를 반복해서 입력 받아(종료 조건 시까지), 예시와 같이 트리 모양을 출력하는 프로그램을 작성하시오.

 

void print_triangle(int x){
    for(int i=0;i<x;i++){
    printf("*");
    }
    printf("\n");
}

int main(){
    int N;

    do{
    scanf("%d",&N);
    print_triangle(N);
    }
    while(N!=0||N<0);
    return 0;
}

 

[문제 6] 하나의 정수 x를 입력 받아 다음 함수의 결과를 출력하는 프로그램을 작성하시오.

f(x) = 2x^2 -5x+1

 

int func1(int x){
    int ans;
    return ans=2*x*x-5*x+1;
}

int main(){
    int x;

    scanf("%d",&x);
    printf("%d",func1(x));
    return 0;
}

 

[문제 7] 하나의 정수 x와 2차 함수 f(x)의 계수를 나타내는 3개의 정수를 입력 받아, 예시와 같이 함수 값을 계산하는 프로그램을 작성하시오.

int func2(int x, int a, int b, int c){
    int ans;
    return ans=a*x*x+b*x+c;

}
int main(){
    int x,a,b,c;

    scanf("%d",&x);
    getchar();
    scanf("%d %d %d",&a,&b,&c);
    printf("%d",func2(x,a,b,c));
    return 0;
}

[문제 8] 하나의 정수 x와 2차 함수 f(x)와 g(x)의 계수를 나타내는 6개의 정수를 입력 받아, 합성함수 g(f(x))를 계산하는 프로그램을 작성하시오.

int func2(int x, int a, int b, int c){
    int ans;
    return ans=a*x*x+b*x+c;

}
int main(){
    int x,a,b,c,i,j,k;

    scanf("%d",&x);
    getchar();
    scanf("%d %d %d",&a,&b,&c);
    getchar();
    scanf("%d %d %d",&i,&j,&k);

    printf("%d",func2(func2(x,a,b,c),i,j,k));
    return 0;
}

 

[문제 9] 정수를 반복해서 입력 받아(종료 조건 시까지) 가장 큰 값과 두 번쨰로 큰 값을 출력하는 프로그램을 작성하시오.

int max1, max2;
void update_max(int x){
    if (x == max1) max2 = x;
        if (x > max1) max2 = max1, max1 = x;
    if (max1 > x&&x > max2) max2 = x;
}
int main(){
    int N;
    scanf("%d",&N);
    max1=N;
    scanf("%d",&N);
    max2=N;
    update_max(N);
    
    while(N!=0){
        scanf("%d",&N);
        update_max(N);

    }
    printf("%d %d",max1,max2);
    return 0;
}

 

[문제 10] 3~18 사이의 정수 N을 입력 받아 3개 주사위의 총 합이 N이 되는 모든 경우를 출력하는 프로그램을 작성하시오.

void die1(int x){

die2(N,x);


}
void die2(int x,int y){
    for(int i=1;i<=N;i++) {
    die3(x,y,i);
    }
}
void die3(int x,int y, int z){
    for(int i=1;i<=N;i++) {
        if(N==y+z+i){
            printf("%d %d %d\n",y,z,i);
        }
    }
}
int main(){
    scanf("%d",&N);
    for(int i=1;i<=N;i++) die1(i);

    return 0;
}

 

[문제 11] 야구 게임

int a,b,c;
int count_strike(int x,int y,int z){
int ans=0;
if(x==a)ans++;
if(y==b)ans++;
if(z==c)ans++;

return ans;        
}                      
int count_ball(int x,int y,int z){
int ans=0;          
if(x==b)ans++;         
if(x==c)ans++;
if(y==c)ans++;
if(z==a)ans++;
return ans;
}
int main(){
    int x,y,z;
    scanf("%d %d %d",&a,&b,&c);
    while(1){

        scanf("%d %d %d",&x,&y,&z);

        printf("%dS%dB\n",count_strike(x,y,z),count_ball(x,y,z));
        if(x==a&&y==b&&z==c) break;
    }


return 0;
}

 

[문제 12] 양의 정수 N을 입력 받아, 아래 예시와 같이 높이가 N인 삼각형을 출력하는 프로그램을 작성하시오.

 

void print_line(int x,int y,int z){
    for(int i=0;i<x;i++)printf(" ");
    for(int j=0;j<y;j++)printf("*");
    for(int k=0;k<z;k++)printf(" ");
    printf("\n");
}

int main(){
    int N;
    scanf("%d",&N);
    for(int i=1;i<= N;i++){
    print_line((2*(N+1-i)-1)/2,2*i-1,(2*(N+1-i)-1)/2);
    }
    return 0;
}

 

[문제 13] 하나의 양의 정수 N을 입력 받아, 1부터 N까지의 정수에서 숫자 3이 총 몇 번 나타나는지를 출력하는 프로그램을 작성하시오.

int count_3(int x){
    int i=0,j,ans=0;

    while(i<=x){ 
    for(j=i;j!=0;j=j/10) 
    if(j%10==3) ans++; 
    i++; 
    } 
    return ans;

}
int main(){
    int N;
    scanf("%d",&N);
    printf("%d",count_3(N));
    return 0;
}

[문제 14] 두 양의 정수 N와 M을 입력 받아, N보다 큰 소수를 작은 것부터 차례로 M개 출력하는 프로그램을 작성하시오.

 is_prime(int x){
    int num=0,tmp;
    tmp=x;

    for(int i=1;i<=x;i++){
    if(x%i==0) num++;
    }

    if(num==2) return 1;
    else return 0;

}
int next_prime(int x){
    int i,j=0;
    i=x+1;
    while(j<5){

    if(is_prime(i)==1) {
    j++;
    return i;
     }
     i++;
}


}
int main(){
    int N,M,tmp;
    scanf("%d %d",&N,&M);
    tmp=N;
    for(int i=0;i<M;i++){
    printf(" %d",next_prime(tmp));
    tmp=next_prime(tmp);
    }

return 0;
}

 


 


 


 

 

 

저작자표시 (새창열림)

'프로그래밍 공부 > C' 카테고리의 다른 글

[C언어] 정수를 문자열로 변환하기  (0) 2020.11.07
[C언어] 야구 게임  (0) 2020.11.04
[C언어] 버블 정렬(가장 작은 수부터 큰 수까지 오름차순으로 정렬)  (0) 2020.11.04
2020.01.06 7장 배열  (0) 2020.11.04
2020.01.05 6장 반복문  (0) 2020.11.04
'프로그래밍 공부/C' 카테고리의 다른 글
  • [C언어] 정수를 문자열로 변환하기
  • [C언어] 야구 게임
  • [C언어] 버블 정렬(가장 작은 수부터 큰 수까지 오름차순으로 정렬)
  • 2020.01.06 7장 배열
Rocketbabydolls
Rocketbabydolls
Rocketbabydolls
  • Rocketbabydolls
    With The Lights Out
    Rocketbabydolls
  • 전체
    오늘
    어제
    • 전체글 (183) N
      • 프로그래밍 공부 (117)
        • C (16)
        • Jumping into C++ (9)
        • MFC (C++) (1)
        • 자료구조 (1)
        • 알고리즘 (1)
        • 백준 (C++) (74)
        • 핸즈온 머신러닝 2판 (6)
        • Unseen 3기 준비 (4)
        • 원티드 포텐업 게임 개발자 양성과정 2기 (4)
      • 언리얼엔진5 (62) N
        • [Part1] 이득우의 언리얼 프로그래밍 (12)
        • [Part2] 이득우의 언리얼 프로그래밍 (2)
        • [Part2 복습] 이득우의 언리얼 프로그래밍 (3)
        • [Part3] 이득우의 언리얼 프로그래밍 (14)
        • [Part4] 이득우의 언리얼 프로그래밍 (0)
        • FPS 게임 1인 프로젝트 (6)
        • 각종 지식 (10) N
        • 블루프린트 Paper2D 로 게임 만들기 (14)
        • 팀 프로젝트 (1)
      • 일상 (1)
      • ETC (1)
        • 맥북 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      언리얼엔진 디자인 패턴
      언리얼엔진 중재자 패턴
      실전 C 프로그래밍
      c언어
      핸즈온 머신러닝 2판
      언리얼엔진5 fps 프로젝트
      실전 C프로그래밍
      실전C프로그래밍 나중채
      티스토리챌린지
      핸즈온 머신러닝
      실전C프로그래밍
      C언어 실습문제
      실전 C프로그래밍 나중채
      언리얼엔진5
      실전 C프로그래밍 실습문제
      언리얼엔진
      언리얼엔진 옵저버 패턴
      오블완
      실전C프로그래밍 실습문제
      c++ 17298
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Rocketbabydolls
    2020.01.07 8장 함수
    상단으로

    티스토리툴바