Mit csinál ez a program?
#include <stdio.h>
main(){
int i = -1;
if(i = 1)
printf("V: %i negativ\n",i);
else
printf("V: %i nem negativ\n",i);
i = -i;
printf("i = %i \n",i = -i);
}
OUTPUT::::::::::::::
V 1 negativ
i = 1
.....................
Itt mi szerint ad i = 1 értéket? vagy midenféle képen lefut az if "feltétel" vagyis értékadás?
és a i = - i;
mennyi a -i ? -1 ha jol irattam ki. De ha if szerint i = 1 es most -1 az akkor 0 lenne.
Ennek semmi értelme. Az if-en belül egy értékadás van, nem egy logikai értéket visszaadó reláció. És mi értelme van kiírni a végén az additív ellentettjét?
ifen belül az egyenlőség tesztelése: i == 1. De ez csak 1-re vonatkozik. Én valahogy így tenném: i < 0 akkor i negatív
int i = -1; // az i értéke -1 lesz
if(i = 1) /* beállítja az i-t 1-re és megnézi, hogy az i-nek mi az értéke. Mivel előbb állítottad be 1-re, ezért 1-lesz. Az 1 az igazat (ture) jelent ANSI C-ben, ezért az első sor fog végrehajtódni */
printf("V: %i negativ\n",i); // (ez a sor) kiír egy V betűt, egy kettőspontot, kiírja az i értékét, és utána azt, hogy "negatív".
else
printf("V: %i nem negativ\n",i);
i = -i; // i értéke negálódik [ (-1)-el szorzódik ] 1 helyett -1 lesz az értéke
printf("i = %i \n",i = -i); // itt ismét negálódik -1 helyett 1 lesz az értéke, és kiírja a program, hogy i = 1
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!