반응형
[문제 풀이]
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 |