본문 바로가기

Nefus

Nefus과제(7)-배열,포인터,구조체,반복문 이용

<1042>

Q.정수 두 개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력하는 프로그램을 작성해보자.
(단, 입력되는 두 개의 정수 a, b의 범위는 -2147483648 ~ 2147483647이고, b는 0이 아니다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int k(int a, int b) {
    return a / b;//나눗셈 해주는 함수
}
struct K{
int n;//구조체에 n을 선언
};
int main() {
    struct K n;
    int arr[50= { 0, };
    for (int i = 0; i < 2++i) {
        scanf("%d"&n.n);
        arr[i] = n.n;
    }
    printf("%d", k(arr[0], arr[1]));
}
cs

<1054>

Q.두 가지의 참(1) 또는 거짓(0)이 입력될 때,
모두 참일 때에만 참이 계산되는 프로그램을 작성해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
struct k {
    int a;//구조체에 a선언
};
int l(int a, int b) {//둘다 참이면 1을 반환해주는 
    if (a == 1 && b == 1)
        return 1;
    else
        return 0;
}
 
int main() {
    struct k arr[2];
    for (int i = 0; i < 2++i) {
        scanf("%d"&arr[i].a);
    }
    printf("%d", l(arr[0].a, arr[1].a));
}
cs

<1116>

Q.두 정수를 입력받아 아래와 같이 출력하시오.

 

예)  3 2

3+2=5
3-2=1
3*2=6
3/2=1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int k(int a, int b) {
    printf("%d+%d=%d\n", a, b, a + b);
    printf("%d-%d=%d\n", a, b, a - b);
    printf("%d*%d=%d\n", a, b, a * b);
    printf("%d/%d=%d\n", a, b, a / b);
    return 0;//사칙연산을 해주는 함수
}
 
int main() {
    int *A[2];//
    int a[2];
    for (int i = 0; i < 2++i) {
        A[i] = &a[i];
        scanf("%d"&*A[i]);
    }
    k(a[0], a[1]);
}
cs

<1118>

Q.삼각형의 넓이를 구하는 프로그램을 작성한다.

 

삼각형의 넓이 = 밑변 * 높이 / 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int K(int a, int b) {
    printf("%.1f", a*/ 2.00);
    return 0;//a와 b를 곱한후 2로 나눠주는 함수
}
int main() {
    int *A[2];//
    int a[2];
    for (int i = 0; i < 2++i) {
        A[i] = &a[i];
        scanf("%d"&*A[i]);
    }
    K(a[0], a[1]);
}
cs
 
<1267>
Q. 수의 개수 n이 주어지고, 그 다음 줄에 무작위로 n개의 자연수가 입력된다.

그 n개의 수 중에서 5의 배수만 골라 합을 출력하시오.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
struct K{
    int a;//구조체에 a선언
};
 
int main(){
    struct K n;
    int *A;//포인터
    int sum = 0,arr[1000];//배열
    A = &n.a;
    scanf("%d"&*A);
    
    for (int i = 0; i < n.a; ++i){
      scanf("%d"&arr[i]);
      if (arr[i] % 5 == 0)
        sum += arr[i];
    }
    printf("%d", sum);
}
cs
 
 
.<1496>
Qn개의 데이터를 배열에 입력 받은 후,

두 개씩 묶어 비교한 후, 작은 값만 들어간 배열을 만들고 출력해보자.
6개의 데이터가 다음과 같이 입력되었을 때,
1 2 3 4 5 6
아래와 같이 출력하면 된다.
1 3 5

k번째 위치에 저장되어야 하는 값은 다음과 같이 표현할 수도 있다.
m[k] = min(m[2*k], m[2*k+1]); //k >= 0

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<stdio.h>
 
struct st { //구조체
    int a;
};
 
int main()
{
    int *A; //포인터
    int n, small = 100;
    A = &n;
    scanf("%d"&*A); //수 입력
    struct st arr[100];
    for (int i = 0; i < n; i++)
    {
        scanf("%d"&arr[i].a); //배열 입력
    }
    for (int j = 0; j < n; j++)
    {
        if (j % 2 == 1//2번째 수일때 실행
        {
            if (arr[j].a > arr[j - 1].a) //전꺼랑 비교
                small = arr[j - 1].a; //작은 수를 small에 입력
            else
                small = arr[j].a; //작은 수를 small에 넣음
            printf("%d ", small); //작은값인 small 출력
        }
    }
}
 
cs
 
<>

 

'Nefus' 카테고리의 다른 글

객체 지향 프로그램과 class&method  (0) 2018.08.22
리눅스 숙제  (0) 2018.06.18
Nefus 과제(5)  (0) 2018.06.04
Nefus-게임 프로젝트  (0) 2018.05.14
Nefus 과제(6)  (0) 2018.04.06