지나가는 C프로그램 초보자 인데요.
지금 배열을 연습하는중인데
아래는 배열을 사용하여 5개의 정수
의 최대값과, 최대값과 각 수와의 차를 구하시오.
이 문제를 가지고 만든 소스인데 소스가 좀
난잡한것 같아서... 소스 간략화하는데 잘 안되가지고
질문올려요.
#include <stdio.h>
#define INPUT_MAX 5 //이건 걍 입력 증설할 때 하려고 만든것
void main()
{
int num[INPUT_MAX];
int repeat,MAX,MIN;
for(repeat=0; repeat<INPUT_MAX; repeat++) // 순서대로 입력받음
scanf("%d",&num[repeat]);
MAX = num[0]; //이건 아무거나 값을 받아도 상관없는데 걍 num[0]로 받음
MIN = num[0]; //Min은 그냥 추가적으로 한번 넣어 봤어염
for(repeat=0; repeat<INPUT_MAX; repeat++) // MAX,MIN 값 결정
{
if(MAX<num[repeat])
MAX = num[repeat];
else if(MIN>num[repeat])
MIN = num[repeat];
}
for(repeat=0; repeat<INPUT_MAX; repeat++) // MAX와 입력받은 수의 차이
num[repeat] -= MAX;
printf("%d %d ",MAX,MIN); // 출력 부분
for(repeat=0; repeat<INPUT_MAX; repeat++)
printf("%d ",-num[repeat]);
printf("n");
}
소스 간략화하는데 힌트 좀 부탁드려염
걍 이렇게 했다는...
#include <stdio.h>
#define INPUT_MAX 5
void main()
{
int num[INPUT_MAX];
int re,Max,fun=0;
while( fun<4 ) // 4개의 기능 동작
{
for(re=0; re<INPUT_MAX; re++)
{
switch(fun)
{
case 0 : scanf("%d",&num[re]);
Max = num[0];
break;
case 1 : if(Max<num[re])
Max = num[re];
break;
case 2 : ( num[re]>=0 )? num[re] -= Max : num[re] += Max;
break;
case 3 : printf("%d ",(num[re]>=0)? num[re] : -num[re]);
break;
}
}
fun++;
}
printf("%d ",Max);
printf("\n");
}
MIN을 뺴고 sum을 넣으면 됨
아 왜이리 복잡하게 변수선언을 했냐 미친거아니냐? 가독성 후지게
나도 이런대화 끼고싶다
ㅈㅅ 아직 초보인지라 변수 하나하나 의미가 들어있게 영어 갔다 붙혀서 썻는데.. 말이죵
금고래//근데 Min 대신 sum넣으라고 하셨는데 구체적으로 좀더 힌트좀