void storeSum(term d[], int *totalD, int row, int column, int *sum)
{
if(*sum)
{
if(*totalD<MAX_TERMS)
{
d[++*totalD].row = row;
d[*totalD].col = column;
d[*totalD].value = *sum;
*sum=0;
}
}
else
{
fprintf(stderr, "Numbers of terms in product exceeds %d \n", MAX_TERMS);
exit(EXIT_FAILURE);
}
}
아마 형들도 잘 알고있을 희소행렬 곱 코드의 storesum 함수야
이게 sum!=0이면 d[].value에 저장하고 sum=0이면 "Numbers of terms in product exceeds %d \n"이 출력되면서 프로그램이 종료 되는데
굳이 그럴필요가 있나 생각이들어
/*else
{
}
*/
이렇게 처리해 버리면
sum!=0이면 d[].value에 저장하고 sum=0일 경우는 그냥 넘어가 버리고 프로그램도 종료되지 않고
왜 sum=0일때 프로그램을 종료해버리는지 모르겠어
좀 알려주라 형들
아! 미안 c 로 작성했어!
초기 조건이 if(*sum)이자나
바로 else 넘어가서 stderr로 가네