Kezdőoldal » Számítástechnika » Programozás » A szám négyzetszám-e?

A szám négyzetszám-e?

Figyelt kérdés

Valamiért nem működik a program. Mindenre azt írja, hogy négyzetszám. Mi lehet a hiba.


#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()

{

int szam, i, jelzo;

jelzo = 0;

printf("Adj meg egy egesz szamot!");

scanf("%d", &szam);

for (i = 2; i < szam; i = i + 1)

if (i*i == szam)

{

jelzo = 1;

}


if (jelzo = 1)

{

printf("Negyzet szam");

}

else

{

printf("Nem negyzet szam");

}

system("pause");

return 0;

}



2018. szept. 22. 16:23
1 2
 1/14 A kérdező kommentje:

[link]

itt átláthatóbb.

2018. szept. 22. 16:24
 2/14 anonim ***** válasza:
100%

if (jelzo = 1)


Az egyenlöséget ezzel vizsgálhatod: ==

2018. szept. 22. 16:28
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:
100%

If jelzo = 1


Ifben erteket adsz neki mert egy db egyenloseg jel van, es igaznak is minosul.

2018. szept. 22. 16:29
Hasznos számodra ez a válasz?
 4/14 A kérdező kommentje:
Pacsi! köszönöm
2018. szept. 22. 16:31
 5/14 anonim ***** válasza:
100%
kis finomítás számnak elég ha felét veszed ezzel a /2-vel is megfelezed a futási időt hiszen a legrosszabb esetben is a szám gyöke a fele vagy kevesebb egész szám esetén (kivéve ha 1 ) . És for helyett while ciklussal csináld ha megvan vagy elérte akkor hagyja abba a keresést. Ettől függetlenül jó amit csináltál csak egy kis optimalizáció + serkenti a gondolkodást.
2018. szept. 22. 17:31
Hasznos számodra ez a válasz?
 6/14 A kérdező kommentje:

Eredetileg /2vel írtam, csak mivel nem jött ki, kitöröltem hátha.

Azt tanították, hogy inkább szokjunk hozzá a for használatához, mert a későbbiekben egyszerűbb lesz mint while-al.

2018. szept. 22. 17:33
 7/14 anonim ***** válasza:
100%
Szokj hozzá mindkettőhöz, mert eltérő célokra használjuk őket. For ciklust ha végig akarunk iterálni egy meghatározott intervallumon, while ciklust ha egy meghatározott feltétel eléréséig akarunk ismételni. Lényegében egyiket akkor használjuk ha pontosan tudjuk hány iterációs lépést fogunk végrehajtani, és while-t akkor, ha nem.
2018. szept. 22. 17:55
Hasznos számodra ez a válasz?
 8/14 A kérdező kommentje:
Értem, köszönöm!
2018. szept. 22. 18:12
 9/14 anonim ***** válasza:
Egyébként ahhoz neked nem kell ciklus, hogy eldöntsd, hogy egész-e a négyzetgyöke.
2018. szept. 23. 01:16
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:
#9 Remélem nem azt akarod mondani, hogy csak nyomjon rá egy sqrt-ot, és kész is van. Amúgy igen, meg lehet ciklus nélkül is csinálni egy pici trükközéssel, de a ciklus használata nevezhetőa legkézenfekvőbb megközelítésnek. Nem veszít vele sok időt, a gyökkeresés N függvényében logaritmikus.
2018. szept. 23. 12:25
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!