Ho un pezzo di codice in cui moltiplico due numeri ma la condizione è nessuno di quei numeri interi dovrebbe essere 0. Se è 0, ho bisogno per renderlo a 1 in modo che non venga contato.Qual è il modo più ottimale per sostituire l'intero '0' con '1' in C++
y=x*z // x>0, z>0. if x==0 then x=1, if z==0, then z=1;
voglio evitare "se" condizione di controllo su tutte le variabili e sostituirlo con 1. Esiste un modo migliore di farlo.
non fare questo 'x? z? x * z: x: z? z: 1' –
Stai cercando di evitare un 'if' a livello sintattico o sei stanco del ramo nel codice macchina generato? Perché tutte le soluzioni con '' 'nascondono semplicemente il ramo sotto il tappeto (il' if' è ancora lì, l'hai appena camuffato con una sintassi diversa). –
Cosa c'è di sbagliato: 'assert (x! = 0); assert (z! = 0); 'e assicurandoti che le asserzioni non si attivino mai? In altre parole, perché accetti dati falsi? Perché non respingere forzatamente dati errati? E che succede con: 'y = x * z; if (y == 0) y = 1; 'che controlla solo il risultato, non gli operandi? Se la risposta è per 'x == 0 && z == 2' il valore in' y' dovrebbe essere 2, quindi dovresti dire tanto nella domanda. –