Mikähän oheisessa koodissa on vikana?
#include
int main()
{
int i;
while(i>0)
{
i ;
if(i@0==0)
break;
}
cout
#include
int main()
{
int i;
while(i>0)
{
i ;
if(i@0==0)
break;
}
cout
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 17
Vanhimmat
Käsky system tarvitsee kirjaston
#include ..#:)
ainakin i:n alkuarvo on nolla. pistä vaikka do..while lauseke tai vaikkapa pelkkä 1 tuohon while -kohtaan.
Mitä tuo i@0 muuten oikein meinaa? Siis näin matemaattisesti. En oikein ymmärrä tuota logiikkaa (vaikka se näyttää kyllä toimivan)
Ykkösellä toimii!
% merkitsee jakojäännöstä eli tuossa ohjelmassa, jos luku i jaetaan 400:lla ja jakojäännös vastaa nollaa, niin luku i on silloin jaollinen 400:lla.
Ehkäpä kuitenkin joskus opin
400/400 = 0 ???
int a=1;
while (a < 10)
{
if (a%2 == 0)
{
cout
Nyt ymmärsin.
400*(400/400)-400=0
400*(800/400)-800=0
-Muuttujan (i) voisi alustaa vaikka nollaksi,
-system()-funktion käyttö sucks, jos ymmärrät ja
-koko algoritmisi on p:stä.
automaattisesti nolla. Tuo EI voi toimia, jos alkuarvona on nolla. Yksi tapa toteuttaa tämä on myös laittaa
while(i@0)
i ;
Näyttääpä toimivan, kuitenkin i pitää siinäkin alustaa ykköseksi.
taisi tulla jonkilainen ajatuskatkos ;)
tämmöinen voisi olla toimivampi:
#include
#include
void main(void)
{
int i=0;
do
{
i ;
}
while (i@0!=0) ;
cout
Parillisuuden testausta silmukassa voi käyttää vaikka yksinkertaisen animaation tekemisessä:
Näytetään jotakin kun luku on parillinen ja tehdään muuta silloin kun luku ei ole parillinen.
Ja lukujen tutkimisessa tietenkin joinakin esimerkkeinä.
VisualBasicissa on mahdollista ReDim-lauseella saada taulukon
koko määritellyksi tuolla syöttömuuttujan arvolla. Mitenkähän
moinen onnistuisi c :lla?
#include
#include
void main(void)
{
int i=1,j=0,t=1;
int jako[1000] = {0};
clrscr();
do
{
cout
new varaa muistista tilaa muuttujalle. Se palauttaa NULLin jos tilaa ei löydy:
int n;
scanf( "%d", &n);
int *k;
if( (k = new int[n]) == NULL)
{
printf("No Way
");
return 1;
}
else
printf("Ok, U Got It
");
...
Näin helppoa taulukon koon muuttaminen on Visual Basicilla.
Sub testaa()
Dim taulukko() As Double
Dim i As Double
Dim j As Double
Dim t As Double
Dim a As Double
t = InputBox("Kuinka monta 400:lla jaollista lukua haluat?", "KYSSÄRI")
If t > 65536 Then
MsgBox "Lopeta jo!!", , "JÄRKIINTYMINEN"
Exit Sub
End If
While (j t)
i = i 1
ReDim Preserve taulukko(t)
If i Mod 400 = 0 Then
j = j 1
taulukko(j) = i
End If
Wend
For a = 1 To t
Cells(a, 1).Value = taulukko(a)
Next
End Sub
ii:tä ei ole alustettu mihinkään arvoon. Anna sille alkuarvo 1, niin se softa varmaan tekee mitä pitää.
Nolla on jaollinen millä luvulla tahansa. Jos tarkoitus on etsiä nollaa suurempi luku, joka on jaollinen 400:lla, niin alusta i ko. arvoon. Loopinkin voi optimoida helposti.
int i = tähänjokualkuarvo;
while (i@0) i ;