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
2/14 anonim válasza:
if (jelzo = 1)
Az egyenlöséget ezzel vizsgálhatod: ==
3/14 anonim válasza:
If jelzo = 1
Ifben erteket adsz neki mert egy db egyenloseg jel van, es igaznak is minosul.
4/14 A kérdező kommentje:
Pacsi! köszönöm
2018. szept. 22. 16:31
5/14 anonim válasza:
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.
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:
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.
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.
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.
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!