음 배열 갯수를 a[5]라고 해서 5개의 방을 주고 이제 5개의 숫자를 입력해서
제일 큰숫자를 a[0]부터 차례대로 제일작은숫자는a[4]에 들어가게 정리하는문제인데
우선은 제일 큰 숫자를 구하는 프로그래밍부터 짯어요
#include <stdio.h>
void main()
{
int a[5],max,i,temp;
max=0;
for(i=1;i<5;i++)
{
if(a[max]<a[i])
{
max=i;
}
}
printf("\nmax=%d",a[max]);
temp=a[0];
a[0]=a[max];
a[max]=temp;
for(i=0;i<5;i++)
{
printf("\na[%d]=%d",i,a[i]);
}
}
이렇게..제일 큰 숫자를 구했어요
그리고 아랫부분의 max=0을 max=1로 바꾸면서 이런식으로
--------------------------------------------------------------------------------------------------
max=1;
for(i=2;i<5;i++)
{
if(a[max]<a[i])
{
max=i;
}
}
printf("\nmax=%d",a[max]);
temp=a[1];
a[1]=a[max];
a[max]=temp;
for(i=0;i<5;i++)
{
printf("\na[%d]=%d",i,a[i]);
}
--------------------------------------------------------------------------------------------------
max=2;
for(i=3;i<5;i++)
{
if(a[max]<a[i])
{
max=i;
}
}
printf("\nmax=%d",a[max]);
temp=a[2];
a[2]=a[max];
a[max]=temp;
for(i=0;i<5;i++)
{
printf("\na[%d]=%d",i,a[i]);
}
--------------------------------------------------------------------------------------------------
max=3;
for(i=4;i<5;i++)
{
if(a[max]<a[i])
{
max=i;
}
}
printf("\nmax=%d",a[max]);
temp=a[3];
a[3]=a[max];
a[max]=temp;
for(i=0;i<5;i++)
{
printf("\na[%d]=%d",i,a[i]);
}
했더니 max=0은 a[0]~a[4]중에 제일 큰숫자를 a[0]에 넣고
max=1은 a[1]~a[4]중에 제일 큰 숫자를 a[1]에 넣고 하는데
지금 딱 봐도 규칙이 보이는데..그래서 규칙을 보이는대로 적용해서
#include <stdio.h>
void main()
{
int a[5],max,i,temp;
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
for(max=0;max<4;max++)
{
for(i=max+1;i<5;i++)
{
if(a[max]<a[i])
{
max=i;
}
}
printf("\nmax=%d",a[max]);
temp=a[max];
a[max]=a[max];
a[max]=temp;
}
for(i=0;i<5;i++)
{
printf("\na[%d]=%d",i,a[i]);
}
}
이렇게 프로그래밍을 짯는데..이건 뭥미..병맛..ㅜㅜ
뭐..짜면서도 저 아래부분에 temp=a[max]이부분부터 저렇게 max를
남발하면 안된다는거 느낌은 오는데 정확히 원인을 모르겟어서..
아..글이 길어졋네..
디씨 첨이라 짤올리는방법도 몰라서 그냥 글만 길게 쓰는데..
이거..누가 읽어주긴 할려나.ㅜㅜ흐규흐규
대체 뭘 하고 싶은 거냐
방향은 맞다. 니가 하는게 순차정렬임. 좀더 깔끔하게 만들어보라능