http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=87&sca=10e0

 

JUNGOL | 문자열1 - 형성평가6 > 문제은행

문자열(100자 이하)을 입력받은 후 정수를 입력받아 해당위치의 문자를 제거하고 출력하는 작업을 반복하다가 문자 1개가 남으면 종료하는 프로그램을 작성하시오. 첫 번째 문자의 위치는 1이며 만약 입력받은 번호가 문자열의 길이 이상이면 마지막 문자를 제거한다. * 입출력예에서 진한글씨가 출력

www.jungol.co.kr

 

 

//문자열 1 : 형성평가 6
#include <bits/stdc++.h>
using namespace std;

int main()
{
    char in[100];
    char temp[100];
    int n = 0;

    gets(in);
    while(strlen(in) != 1){
        scanf("%d", &n);
        if(n > strlen(in)){
            in[strlen(in)-1] = NULL;
        }
        else{
            int j = 0;
            for(int i = 0; i <= strlen(in); i++){
                if(i+1 != n)    temp[j++] = in[i];
            }
            strcpy(in, temp);
        }

        printf("%s \n", in);

    }
}

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=244&sca=10f0

 

JUNGOL | 문자열2 - 자가진단6 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

//문자열 2 : 자가진단 6
#include <bits/stdc++.h>
using namespace std;

int main()
{
    char a[100];
    char b[100];
    char temp[100]={0,};

    scanf("%s %s", &a, &b);
    for(int i = 0; i < 2; i++){
        b[i] = a[i];
        temp[i] = a[i];
    }
    strcat(b, temp);
    printf("%s", b);

}

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=245&sca=10f0

 

JUNGOL | 문자열2 - 자가진단7 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

//문자열 2 : 자가진단 7
#include <bits/stdc++.h>
using namespace std;

int main()
{
    char in[100];
    gets(in);

    if(strchr(in, 'c') != 0)   printf("YES ");
    else    printf("NO ");

    if(strstr(in, "ab") != NULL)   printf("YES ");
    else    printf("NO ");
}
//문자열 2 : 자가진단 7
#include <bits/stdc++.h>
using namespace std;

int main()
{
    char in[100];
    int flag = 0, flag_2 = 0;

    gets(in);
    for(int i = 0; i < strlen(in); i++){
        if(in[i] == 'c'){
            flag = 1;
        }

        else if(in[i] == 'a'){
            if(in[i+1] == 'b'){
                flag_2 = 1;
            }
        }
    }
    if(flag == 1)   printf("YES ");
    else    printf("NO ");

    if(flag_2 == 1)   printf("YES ");
    else    printf("NO ");
}

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=73&sca=10b0

 

JUNGOL | 함수1 - 형성평가4 > 문제은행

두 개의 음이 아닌 정수를 입력받아 큰 수의 제곱에서 작은 수의 제곱을 뺀 결과값을  출력하는 프로그램을 작성하시오. (두 정수를 전달받아 제곱의 차를 리턴하는 함수를 이용할 것)

www.jungol.co.kr

#include <bits/stdc++.h>
using namespace std;
/*
함수1 - 형성평가4
*/

int f(int a,int b){
    if(a>b){
        return (a*a)-(b*b);
    }
    else{
        return (b*b)-(a*a);
    }
}

int main()
{
    int a,b;

    scanf("%d %d",&a,&b);

    printf("%d ",f(a,b));

    return 0;
}

 

 

abs()함수 사용을 개선

https://en.cppreference.com/w/cpp/numeric/math/abs

 

std::abs, std::labs, std::llabs, std::imaxabs - cppreference.com

int       abs( int n ); long      abs( long n ); long long abs( long long n ); (since C++11) long       labs( long n ); long long llabs( long long n ); (since C++11) (since C++11) (since C++11) Computes the absolute value of an integer number. The behavior

en.cppreference.com

 

#include <bits/stdc++.h>
using namespace std;
/*
함수1 - 형성평가4
*/

int f(int a,int b){
    /*
    if(a>b){
        return (a*a)-(b*b);
    }
    else{
        return (b*b)-(a*a);
    }
    */
    return abs((a*a)-(b*b));

}

int main()
{
    int a,b;

    scanf("%d %d",&a,&b);

    printf("%d ",f(a,b));

    return 0;
}

 

 

pow()함수 사용을 추가 개선

https://en.cppreference.com/w/cpp/numeric/math/pow

 

std::pow, std::powf, std::powl - cppreference.com

(1) float       pow ( float base, float exp ); float       powf( float base, float exp ); (since C++11) double      pow ( double base, double exp ); (2) (3) long double pow ( long double base, long double exp ); long double powl( long double base, long dou

en.cppreference.com

#include <bits/stdc++.h>
using namespace std;
/*
함수1 - 형성평가4
*/

int f(int a,int b){
    /*
    if(a>b){
        return (a*a)-(b*b);
    }
    else{
        return (b*b)-(a*a);
    }
    */
    return abs(pow(a,2)-pow(b,2));

}

int main()
{
    int a,b;

    scanf("%d %d",&a,&b);

    printf("%d ",f(a,b));

    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

579 : 함수2 - 자가진단1  (0) 2020.02.16
174 : 함수1 - 형성평가5  (0) 2020.02.16
172 : 함수1 - 형성평가3  (0) 2020.02.16
함수3 - 자가진단2  (0) 2020.02.09
함수3 - 자가진단1  (0) 2020.02.09

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=72&sca=10b0

 

JUNGOL | 함수1 - 형성평가3 > 문제은행

자연수를 입력받아 아래와 같은 사각형을 출력하는 프로그램을 작성하시오. 주어지는 수는 100이하의 자연수이다. (함수를 작성하시오.)

www.jungol.co.kr

 

 

#include <bits/stdc++.h>
using namespace std;
/*
함수1 - 형성평가3
*/

void f(int n){
    int i,j;
    for(i=1;i<=n;i++){
        for(j=i;j<=i*n;j=j+i){
            printf("%3d ",j);
        }
        printf("\n");
    }
}

int main()
{
    int i,j, n;

    scanf("%d",&n);

    f(n);
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

174 : 함수1 - 형성평가5  (0) 2020.02.16
173 : 함수1 - 형성평가4  (0) 2020.02.16
함수3 - 자가진단2  (0) 2020.02.09
함수3 - 자가진단1  (0) 2020.02.09
함수2 - 형성평가7  (0) 2020.02.09

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=224&sca=10d0

 

JUNGOL | 함수3 - 자가진단1 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

#include <bits/stdc++.h>
using namespace std;
/*
함수3 - 자가진단1
20 이하의 자연수 N을 입력받아 재귀함수를 이용해서 문자열 “recursive”를 N번 출력하는 프로그램을 작성하시오.
입력 예
3
출력 예
recursive
recursive
recursive
*/

void re(int p,int n)
{
    printf("recursive\n");
    if(p==n)return;
    p++;
    re(p,n);
}

int main()
{
    int n;
    scanf("%d",&n);
    re(1,n);
    return 0;
}

 

아래와 같이 수정했을때 , 출력 결과가 어떻게 나올지 생각해보면, 재귀함수 이해에 도움이 많이 될것 같네요.^^

 

#include <bits/stdc++.h>
using namespace std;
/*
함수3 - 자가진단1
20 이하의 자연수 N을 입력받아 재귀함수를 이용해서 문자열 “recursive”를 N번 출력하는 프로그램을 작성하시오.
입력 예
3
출력 예
recursive
recursive
recursive
*/

void re(int p,int n)
{
    printf("recursive %d   %d  \n", p, n);
    if(p==n)return;
    p++;
    re(p,n);
    printf("xxx %d   %d\n", p, n);
}

int main()
{
    int n;
    scanf("%d",&n);
    re(1,n);
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

172 : 함수1 - 형성평가3  (0) 2020.02.16
함수3 - 자가진단2  (0) 2020.02.09
함수2 - 형성평가7  (0) 2020.02.09
함수2 - 형성평가6  (0) 2020.02.09
함수2 - 형성평가5  (0) 2020.02.09

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=81&sca=10c0

 

JUNGOL | 함수2 - 형성평가7 > 문제은행

원주율을 3.141592로 매크로 상수로 정의하고 원의 넓이를 구하는 매크로 함수를 작성하여 반지름을 입력받아 원의 넓이를 출력하는 프로그램을 작성하시오. (소수 넷째자리에서 반올림)

www.jungol.co.kr

#include <bits/stdc++.h>
using namespace std;
/*
함수2 - 형성평가7
원주율을 3.141592로 매크로 상수로 정의하고 원의
넓이를 구하는 매크로 함수를 작성하여 반지름을 입력받아
원의 넓이를 출력하는 프로그램을 작성하시오. (소수 넷째자리에서 반올림)
입력 예
radius : 1.5
출력 예
area = 7.069
*/
#define PI 3.141592
#define AREA(r) r*r*PI
float f(float r)
{
    float s;
    //s=r*r*PI;
    s=AREA(r);
    return s;
}

int main()
{
    float r,k;
    printf("radius :");
    scanf("%f",&r);
    k=f(r);
    printf("area = %.3f",k);
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

함수3 - 자가진단2  (0) 2020.02.09
함수3 - 자가진단1  (0) 2020.02.09
함수2 - 형성평가6  (0) 2020.02.09
함수2 - 형성평가5  (0) 2020.02.09
함수2 - 형성평가4  (0) 2020.02.09

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=78&sca=10c0

 

JUNGOL | 함수2 - 형성평가4 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

#include <bits/stdc++.h>
using namespace std;

/*
함수2 - 형성평가4
정수 n을 입력받아 2n의 값을 출력하는 프로그램을 작성하시오. (1 ≤ n ≤ 20)
입력 예
10
출력 예
1024
*/

int power(int a)
{
    int k=1,i;
    for(i=1; i<=a; i++){
        k=k*2;
    }
    return k;
}


int main()
{
    int a,f;
    scanf("%d",&a);
    f=power(a);
    printf("%d",f);
    return 0;
}
#include <bits/stdc++.h>
using namespace std;

/*
함수2 - 형성평가4
정수 n을 입력받아 2n의 값을 출력하는 프로그램을 작성하시오. (1 ≤ n ≤ 20)
입력 예
10
출력 예
1024
*/

int main()
{
    int a,f;
    scanf("%d",&a);
    f=pow(2,a);
    printf("%d",f);
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

함수3 - 자가진단1  (0) 2020.02.09
함수2 - 형성평가7  (0) 2020.02.09
함수2 - 형성평가6  (0) 2020.02.09
함수2 - 형성평가5  (0) 2020.02.09
함수2 - 형성평가3  (0) 2020.02.09

 

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=77&sca=10c0

 

JUNGOL | 함수2 - 형성평가3 > 문제은행

경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호 TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com Copyrightⓒ 2010-2019 jungol. All right reserved. TOP

www.jungol.co.kr

 

#include <bits/stdc++.h>
using namespace std;

/*
함수2 - 형성평가3
5개의 정수를 입력받아 각 정수의 절대값의 합을 출력하는 프로그램을 작성하시오.
입력 예
35 -20 10 0 55
출력 예
120
*/

void f(int a[])
{
    int i,c=0;
    for(i=1; i<=5; i++){
        c=c+abs(a[i]);
    }
    printf("%d",c);
}

int main()
{
    int i,a[1004];
    for(i=1; i<=5; i++){
        scanf("%d",&a[i]);
    }
    f(a);
    return 0;
}

'정보올림피아드-KOI > 기초 문법 문제' 카테고리의 다른 글

함수3 - 자가진단1  (0) 2020.02.09
함수2 - 형성평가7  (0) 2020.02.09
함수2 - 형성평가6  (0) 2020.02.09
함수2 - 형성평가5  (0) 2020.02.09
함수2 - 형성평가4  (0) 2020.02.09

+ Recent posts