선택정렬과정을 출력하는데요..순서가 다르게 출력되요
해님꽃
질문 제목 :
파일입출력으로 선택정렬 과정을 출력하는 소스인데요
예를 들어 정수 5와 5개의 정수를 입력받으면
선택정렬되는 과정을 출력하는 소스인데요...
출력되는 과정이 약간 다르게 출력됩니다.
입력예)
5
6 4 8 3 1
올바른 출력예)
1 4 8 3 6
1 3 8 4 6
1 3 4 8 6
1 3 4 6 8
다른 출력)
1 6 8 4 3
1 3 8 6 4
1 3 4 8 6
1 3 4 6 8
출력되는 과정이 왜 다른가요? 올바른 출력예와 같이 출력하려면 무엇을 수정해야 하나요?
질문 내용 :
#includestdio.h
int main()
{
int i,j,k,tmp,n,a[100];
file *in=fopen(input.txt,r);
file *out=fopen(output.txt,w);
fscanf(in,%d,&n);
for(i=0;in;i++)
{
fscanf(in,%d,&a[i]);
}
for(i=0;in-1;i++)
{
for(j=i+1;jn;j++)
{
if(a[i]a[j]){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
for(k=0;kn;k++)
{
fprintf(out,%d ,a[k]);
}
fprintf(out,\n);
}
fclose(in);
fclose(out);
return 0;
}
__________________________________________________________________________________________________________
수다님의 조언을 토대로 고쳐서 자문자답해 봅니다.
#includestdio.h
void swap(int a[],int i,int j)
{
int t=a[i]; a[i]=a[j]; a[j]=t;
}
int main()
{
int i,j,k,n,a[100],min;
file *in=fopen(input.txt,r);
file *out=fopen(output.txt,w);
fscanf(in,%d,&n);
for(i=0;in;i++)
{
fscanf(in,%d,&a[i]);
}
for(i=0;in-1;i++)
{
min=i;
for(j=i+1;jn;j++)
{
if(a[j]a[min])
p; {
min=j;
}
}
swap(a,min,i);
for(k=0;kn;k++)
{
fprintf(out,%d ,a[k]);
}
fprintf(out,\n);
}
fclose(in);
fclose(out);
return 0;
}
-
앤드류
짝짝짝 :D
-
힘차
선택정렬을 쓰지 않았네요. 변형된 거품정렬입니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700932 | 도와주세요 ㅠㅠ 모르겟어요 ㅠ | 유희 | 2025-07-09 |
2700900 | 반복문 도움요청..!!합니다. (1) | 두힘 | 2025-07-09 |
2700875 | (유효성검사)프로그램 짜는데 질문이 잇습니다. | 휑하니 | 2025-07-09 |
2700852 | 링크드 리스트 구현시 malloc 관련 에러 입니다. | 삐용삐용 | 2025-07-08 |
2700828 | 7/4 와 7/4.0 의 차이 | 발랄한그1녀 | 2025-07-08 |
2700771 | 아스키값 질문입니다. (+추가 임베디드 다른것도!) (3) | 찰스 | 2025-07-08 |
2700746 | 코드 오류 질문드립니다 | 차분 | 2025-07-07 |
2700721 | 배열 프로그래밍 입니다. (1) | 크나 | 2025-07-07 |
2700695 | 간단한 메모장 구현을 할려고 하는데요 (9) | 늘솜 | 2025-07-07 |
2700668 | c언어 질문입니다. 도와주세요~ (3) | 가자 | 2025-07-07 |
2700639 | 한글입력받아서 ㄱㄴㄷ순서대로출력하는법좀 | 두빛나래 | 2025-07-06 |
2700610 | 정말 기초적인 더하기,여백 문제 help | 무슬 | 2025-07-06 |
2700562 | 함수포인터에서요 (7) | 소심한여자 | 2025-07-06 |
2700530 | 전처리문 질문입니다. (1) | 아놀드 | 2025-07-05 |
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |