programming language/C언어 기초 문제풀이

[함수]: 기본문제2

E.W.I 2021. 7. 8. 16:45
반응형

 

 

[문제 풀이]

 

1. 3개의 실수를 입력받아 함수로 보내줍니다

2. 함수에서 제일 크고 제일 작은 값들을 찾아서 새로운 배열 처음, 두 번째 원소로 초기화시켜줍니다.

3. 남은값을 새로운 배열의 마지막 원소로 초기화시켜줍니다.

 

 

#include <stdio.h>
 
void number(float arr[3])
{
    float max = -1000;
    float min = 1000;
    float num[3= { 0 };
    for (int i = 0; i < 3; i++)
    {
        if (arr[i] > max)
        {
            max = arr[i];
        }
        if (min > arr[i])
        {
            min = arr[i];
        }
        num[0= max;
        num[1= min;
    }
    for (int i = 0; i < 3; i++)
    {
        if (arr[i] == max || arr[i] == min)
        {
            arr[i] = 0;
        }
    }
    for (int i = 0; i < 3; i++)
    {
        if (arr[i]!=0)
        {
            num[2]=arr[i];
        }
    }
    
    num[0+= 1;
    if (num[1< 0)
    {
        num[1-= 1;
    }
    else
    {
        num[1+= 1;
    }
 
    for (int i = 0; i < 3; i++)
    {
        printf("%.0f ", num[i]);
    }
}
 
int main()
{
    float arr[3];
    for (int i = 0; i < 3; i++)
    {
        scanf("%f"&arr[i]);
    }
    number(arr);
    return 0;
}
cs

 

 


 

[문제 풀이]

 

1. 배열의 개수를 입력받고 함수로 보내줍니다.

2. 2개의 for문을 사용하여 순서대로 값을 비교합니다

3. 만약 내림차순으로 돼있지 않다면 swap 매크로를 이용하여 위치를 바꿔줍니다.

#include <stdio.h>
 
void number(int a)
{
    int arr[15= { 0 };
    int swap;
    for (int i = 0; i < a; i++)
    {
        scanf("%d"&arr[i]);
    }
 
    for (int i = 0; i < a; i++)
    {
        for(int j=i+1;j<a;j++)
        {
            if (arr[i] < arr[j])
            {
                swap = arr[i];
                arr[i] = arr[j];
                arr[j] = swap;
            }
        }
    }
    for (int i = 0; i < a; i++)
    {
        printf("%d ", arr[i]);
    }
 
}
 
int main()
{
    int a;
    scanf("%d"&a);
    number(a);
    return 0;
}
cs

 

 

 

'programming language > C언어 기초 문제풀이' 카테고리의 다른 글

[함수]: 기본문제4  (0) 2021.07.11
[함수]: 기본문제3  (0) 2021.07.10
[함수]: 기본문제 풀이  (0) 2021.07.07
배열기초문제4  (0) 2021.07.02
포인터  (0) 2021.07.01