Kezdőoldal » Számítástechnika » Programozás » Mit csinál ez a program?

Mit csinál ez a program?

Figyelt kérdés

#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.


2012. jan. 8. 22:23
 1/2 anonim ***** válasza:

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

2012. jan. 8. 22:50
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

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

2012. jan. 9. 02:01
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!