희소행렬
- 최초 등록일
- 2012.04.17
- 최종 저작일
- 2010.04
- 6페이지/ 한컴오피스
- 가격 2,000원
소개글
C로 짜여진 희소행렬 생성코드 및 파일입출력에 관한 전반적인 내용이 포함되어 있는 자료입니다. 소스코드역시 포함되어있습니다.
목차
1. 구현환경
2. 프로그램 특징 및 설명
3. 참고 문헌
본문내용
문제2) ArrData.txt를 이용 3원소 쌍으로 희소행렬을 만들어 smArrData.txt에 저장.
[소스코드 및 설명(주석)]
void project2(void){
FILE* fp1;
FILE* fp2; // 파일포인터 선언
int i,j,k=1; // 변수선언
fp1 = fopen("ArrData.txt", "rt"); //읽기형식으로 ArrData.txt 을 지정
fp2 = fopen("smArrData.txt", "wt"); //쓰기형식으로 smArrData.txt 파일 생성
smArray[0].row=1000; // 구조체 배열을 이용하여 첫 번째 배열에 값 입력
smArray[0].col=1000; // 구조체 배열을 이용하여 첫 번째 배열에 값 입력
smArray[0].value=10000; // 구조체 배열을 이용하여 첫 번째 배열에 값 입력
for(i=0;i<1000;i++){
for(j=0;j<1000;j++){
smArray[k].col = i, smArray[k].row = j;
smArray[k].value=fgetc(fp1)-48;
if(smArray[k].value >= 0) //rn 때문에 생기는 값을 버리기 위함
k++;
else
j--; //0보다 작은 경우 j를 올리지 않고 다음 값 입력받음
}
} // 반복문을 이용하여 구조체 배열의 각 변수에 값을 저장.
fprintf(fp2,"smArray[n] R C Vrn"); //smArrData.txt에 출력.
for(k=0,i=0;k<1000000;k++,i++)
if(smArray[k].value!=0 && i<10000)
fprintf(fp2, "smArray[%d] %d %d %drn", i, smArray[k].col, smArray[k].row, smArray[k].value);
else
i--;
fclose(fp1);
fclose(fp2);
} // smArray배열에 있는 값 중 value값이 0이 아닌 값만 출력
참고 자료
천정아, 개념을 콕콕 잡아주는 C프로그래밍(이한출판사,2009)
HOROWITZ 외 2명, C로 쓴 자료구조론(교보문고, 2009)
김은철, 초보자를 위한 C언어 300제(정보문화사, 2004)p325
「배열과 관련한 파일 입출력」,『C언어를 배우자』,2010.04.03, http://cafe.naver.com
/cafec/161766