C언어(자기주도C언어프로그래밍)/Chapter11. 함수1

자기주도C언어프로그래밍 Chapter11. 함수1 - 형성평가

사상 2023. 3. 28. 16:57

1. ‘@’문자를 10개 출력하는 함수를 작성 한 후 함수를 세 번 호출하여 아래와 같이 출력하는 프로그램을 작성하시오.

출력 예

first
@@@@@@@@@@
second
@@@@@@@@@@
third
@@@@@@@@@@

 

#include <stdio.h>

void print_a(){
    printf("@@@@@@@@@@\n");
}
int main(){
    printf("first\n");
    print_a();
    printf("second\n");
    print_a();
    printf("third\n");
    print_a();

    return 0;
}

 

※ 함수를 print_@로 해서 @를 출력한다고 하고싶었는데 함수 이름에 @를 쓰지 못해서 a로 했습니다.

 

2. 1부터 전달받은 수까지의 합을 출력하는 함수를 작성하고 1000 이하의 자연수를 입력받아 작성한 함수로 전달하여 출력하는 프로그램을 작성하시오.

입력 예

100

출력 예

5050

 

#include <stdio.h>

void cal_sum(int num){
    int i, sum=0;
    for(i=1;i<=num;i++)
        sum += i;

    printf("%d", sum);
}

int main(){
    int a;
    scanf("%d", &a);
    cal_sum(a);

    return 0;
}

 

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

입력 예

3

출력 예

1 2 3
2 4 6
3 6 9

 

#include <stdio.h>
void name(int num){
    int i, j, cnt=1;
    for(i=1;i<=num;i++){
        for(j=1;j<=num;j++){
            printf("%d ", j*cnt);
        }
        printf("\n");
        cnt++;
    }


int main(){
    int num;
    scanf("%d", &num);
    name(num);


    return 0;
}

 

※ num이 3이라고 가정하면 cnt=1일때 j*cnt는 j*1이므로 1 2 3이 출력되고 cnt++이 계산되서 cnt=2가 됩니다. 그러면 j*cnt는 j*2가 되므로 2 4 6이 출력되고 cnt++에 의해 cnt=3이 됩니다. 그러면 j*cnt는 j*3이 되므로 3 6 9가 출력이 됩니다.

 

#include <stdio.h>
int cal(int a, int b){
    int result;
    b = b * b;
    a = a * a;

    if(a < b){
        return b - a;
    }
    else{
        return a - b;
    }
}
int main(){
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d", cal(a, b));

    return 0;
}

 

5. 3명 학생의 3과목 점수를 입력받아 각 과목별 학생별 총점을 출력하는 구조화된 프로그램을 작성하시오.

입력 예

50 80 100
96 88 66
100 85 90

출력 예

50 80 100 230
96 88 66 250
100 85 90 275
246 253 256 755

 

// 챕터가 함순데 함수를 사용하지 않고 만들어졌네요...(?)

#include <stdio.h>

int main(){
    int i, j, array[4][4] = {0};
    for(i=0;i<3;i++){
        scanf("%d %d %d", &array[i][0], &array[i][1], &array[i][2]);
        array[i][3] = array[i][0] + array[i][1] + array[i][2];
    }
    for(j=0;j<4;j++){
        array[3][j] = array[0][j] + array[1][j] + array[2][j];
    }

    for(i=0;i<4;i++){
        for(j=0;j<4;j++){
            printf("%d ", array[i][j]);
        }
        printf("\n");
    }
return 0;
}

 

※ 5번은... 집가서 함수를 써서 다른 방법으로 다시 작성해 보겠습니다...