此图显示了一个预算,其中void FamilyFree( struct Family *fam ) {
free( fam );
}
void StudentFree( struct Student *student ) {
if ( student ) {
FamilyFree( student->fam );
free( student );
}
}
void CollegeFree( struct College *college ) {
if ( college ) {
for ( int i = 0; i < MAX_STUDENTS; ++i )
StudentFree( college->Students[i] );
free( college );
}
}
void SystemFree( struct System *sys ) {
if ( sys ) {
for ( int i = 0; i < MAX_COLLEGES; ++i )
CollegeFree( sys->Colleges[i] );
free( sys );
}
}
,Yearly
,Quartly
等的值被划分为每个月的值,然后求和:
如果未键入任何内容,那么我不想看到Monthly
。相反,我只希望该字段保持空白。如第4行所示。
因此,我使用0
,首先检查计算是否为零,IF
。如果不是,则显示A2/12+B2/3+C2>0
的结果;否则,什么都不会显示:A2/12+B2/3+C2
。
" "
我的问题是,是否可以避免在公式中进行两次计算? =IF(A2/12+B2/3+C2>0 ; A2/12+B2/3+C2 ; " ")
被写两次。在我的实际场景中,我有一些相当大的计算,而且看起来很乏味且容易出错,当我必须在计算中修复某些内容时,我必须复制/粘贴它,因此公式中的两个地方都相同
是否有更聪明的方法来实现这一目标?一种更聪明的计算方法却避免了零情况?一种不包括重复计算的方法?