if(tecken && i) // om tecken OCH i var för sig är mer än noll.
Fel.
Precis som Moström skrev så kontrollerar IF om satsen evaluerar till NULL (NULL är inte 0 i C har jag för mig) och för allt annat är den 'true'.
if(tecken && i) // kan skrivas if( (tecken != NULL) && (i != NULL))
// om tecken OCH i var för sig är mer än noll.
if(tecken && (i > 0))
if(tal || i) // om tal ELLER i var för sig är mer än noll.
if(!tal); // om tal är noll.
Fel. Godkänner alla värden som inte är NULL.
if((tal >0) || (i>0)) // om tal ELLER i var för sig är mer än noll.
else if(!i) // om i är noll.
{
if(tal+i) // om tal+i är mer än 0.
printf("Hej på er!\n");
}
Fel
som åvan, så länge som i är satt till något annat än NULL så godkänns if-satsen.
som åvan, så länge tal+1 inte blir NULL så godkänns if-satsen.
else if(i == 0) // om i är noll.
{
if((tal+i) > 0) // om tal+i är mer än 0.
printf("Hej på er!\n");
}