2013-10-06 5 views
0

Это кажется основным, но мне нужно добавить числа независимо от того, является ли это условие «включено» (я, вероятно, изменю это на логическое). Поэтому мой вопрос заключается в том, как это сделать в коде C, если это возможно. Я пытался что-то в этом роде и различных исполнений:Добавление номеров Условно

dfTotalTaxOwed[nIndex] = dfFedTaxOwed[nIndex] + if(arrNYStateTaxStatus[nIndex] == 1){dfNYStateTaxOwed[nIndex];} 
               + if(arrNDStateTaxStatus[nIndex] == 1){dfNDStateTaxOwed[nIndex];} 
               + if(arrNHStateTaxStatus[nIndex] == 1){dfNHStateTaxOwed[nIndex];} 
               + if(arrOHStateTaxStatus[nIndex] == 1){dfOHStateTaxOwed[nIndex];} 
               + if(arrPAStateTaxStatus[nIndex] == 1){dfPAStateTaxOwed[nIndex];} 
               + if(arrNJStateTaxStatus[nIndex] == 1){dfNJStateTaxOwed[nIndex];} 
               + dfFicaTaxOwed[nIndex];  

благодаря

ответ

0

Контрольные инструкции C не имеют значений возврата, поэтому такой подход не будет работать. Есть ли причина, по которой вы не хотите делать серию таких утверждений, как

if(arrNYStateTaxStatus[nIndex] == 1) { 
    dfTotalTaxOwed[nIndex] += dfNYStateTaxOwed[nIndex]; 
} 

?

+0

ну, так как у меня установлен код, все государственные налоги на прибыль вычисляются тогда, если государство было «включено» или нет, это добавит необходимые налоги. Поэтому я полагаю, что теперь у вас будет работа, и я думаю об этом. – user1093111

1

Вы можете использовать ternary operator.

expr ? true value : false value

Т.е. замените if(arrNYStateTaxStatus[nIndex] == 1){dfNYStateTaxOwed[nIndex];} на (arrNYStateTaxStatus[nIndex] == 1) ? dfNYStateTaxOwed[nIndex] : 0.

На стороне примечания, вы можете подумать о том, чтобы перепроектировать вашу программу, чтобы использовать словарь вместо того, чтобы иметь массив для каждого состояния.

Смежные вопросы