Eli minun C-kielen perusteet tehtävänä oli muuttaa minun koodia, joka näyttää kolema randomia numeroa 1 ja 6 väliltä niin, että numeron arvonta tapahtuu alifunktiossa. Jostakin syystä ainoa numero, mitä muokattu ohjelma näyttää on "0", eikä minulla ole mitään hajua mitä tein väärin.
Alkuperäinen koodi:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int stop; //Muuttua, joka kertoo, että haluaako käyttäjä keskeyttää ohjelman
int loop; //Muuttuja, joka kertoo kuinka monta kertaa ohjelma on loopannut
int randomNumber;
int aika=time(NULL);
while(stop <= 1)
{
do //do komento, joka loopaa ohjelmaa,kunnes loop muuttuja on yhtäsuuri tai enemmän, kuin 3
{
srand(aika*loop*randomNumber);
randomNumber = rand() % 6 +1; //Arpoo satunnaisen numeron 1 ja 6 väliltä.
//Käyttää siemenenä "aika*loopien määrä*random numero",
//jotta saataisiin jokaisella kieroksella muutuva siemen
switch(randomNumber) //Ilmoittaa arvotun numeron roomalaisilla numeroina, koska piti saada jotakin merkitystä tuolla case rakenteelle
{
case 1: printf("\nLukusi on I");
break;
case 2: printf("\nLukusi on II");
break;
case 3: printf("\nLukusi on III");
break;
case 4: printf("\nLukusi on IV");
break;
case 5: printf("\nLukusi on V");
break;
case 6: printf("\nLukusi on VI");
break;
}
loop++; //Kastavaa loop muutujaa yhdellä jokaisen loopin jälkeen
}
while(loop <= 3); //while komento, joka keroo milloin ohjelma kuuluu lopettaa
int valinta; //Muuttuja, joka kertoo minkä valinnan käyttäjä teki
printf("\nHaluatko jatkaa ohjelmaa?\n1.Kyllä 2.Ei ");
scanf("%d", &valinta);
if(valinta==1)
{
stop=0;
loop=1;
}
if(valinta==2)
{
stop=2;
}
}
}
Muokattu koodi:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int randomLuku(int randomNumber, int aika, int loop);
main()
{
int stop; //Muuttua, joka kertoo, että haluaako käyttäjä keskeyttää ohjelman
while(stop <= 1)
{
int randomNumber;
int aika=time(NULL);
int loop;
loop++;
printf("Luku on %d\n", randomNumber);
loop++;
printf("Luku on %d\n", randomNumber);
loop++;
printf("Luku on %d\n", randomNumber);
int valinta; //Muuttuja, joka kertoo minkä valinnan käyttäjä teki
printf("\nHaluatko jatkaa ohjelmaa?\n1.Kyllä 2.Ei ");
scanf("%d", &valinta);
if(valinta==1)
{
stop=0;
}
if(valinta==2)
{
stop=2;
}
}
}
int randomLuku(int randomNumber, int aika, int loop)
{
srand(aika*loop);
randomNumber = rand() % 6 +1; //Arpoo satunnaisen numeron 1 ja 6 väliltä. Käyttää siemenenä "aika*loopien määrä*random numero", jotta saataisiin jokaisella kieroksella muutuva siemen
return(randomNumber);
}
Alkuperäinen koodi:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int stop; //Muuttua, joka kertoo, että haluaako käyttäjä keskeyttää ohjelman
int loop; //Muuttuja, joka kertoo kuinka monta kertaa ohjelma on loopannut
int randomNumber;
int aika=time(NULL);
while(stop <= 1)
{
do //do komento, joka loopaa ohjelmaa,kunnes loop muuttuja on yhtäsuuri tai enemmän, kuin 3
{
srand(aika*loop*randomNumber);
randomNumber = rand() % 6 +1; //Arpoo satunnaisen numeron 1 ja 6 väliltä.
//Käyttää siemenenä "aika*loopien määrä*random numero",
//jotta saataisiin jokaisella kieroksella muutuva siemen
switch(randomNumber) //Ilmoittaa arvotun numeron roomalaisilla numeroina, koska piti saada jotakin merkitystä tuolla case rakenteelle
{
case 1: printf("\nLukusi on I");
break;
case 2: printf("\nLukusi on II");
break;
case 3: printf("\nLukusi on III");
break;
case 4: printf("\nLukusi on IV");
break;
case 5: printf("\nLukusi on V");
break;
case 6: printf("\nLukusi on VI");
break;
}
loop++; //Kastavaa loop muutujaa yhdellä jokaisen loopin jälkeen
}
while(loop <= 3); //while komento, joka keroo milloin ohjelma kuuluu lopettaa
int valinta; //Muuttuja, joka kertoo minkä valinnan käyttäjä teki
printf("\nHaluatko jatkaa ohjelmaa?\n1.Kyllä 2.Ei ");
scanf("%d", &valinta);
if(valinta==1)
{
stop=0;
loop=1;
}
if(valinta==2)
{
stop=2;
}
}
}
Muokattu koodi:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int randomLuku(int randomNumber, int aika, int loop);
main()
{
int stop; //Muuttua, joka kertoo, että haluaako käyttäjä keskeyttää ohjelman
while(stop <= 1)
{
int randomNumber;
int aika=time(NULL);
int loop;
loop++;
printf("Luku on %d\n", randomNumber);
loop++;
printf("Luku on %d\n", randomNumber);
loop++;
printf("Luku on %d\n", randomNumber);
int valinta; //Muuttuja, joka kertoo minkä valinnan käyttäjä teki
printf("\nHaluatko jatkaa ohjelmaa?\n1.Kyllä 2.Ei ");
scanf("%d", &valinta);
if(valinta==1)
{
stop=0;
}
if(valinta==2)
{
stop=2;
}
}
}
int randomLuku(int randomNumber, int aika, int loop)
{
srand(aika*loop);
randomNumber = rand() % 6 +1; //Arpoo satunnaisen numeron 1 ja 6 väliltä. Käyttää siemenenä "aika*loopien määrä*random numero", jotta saataisiin jokaisella kieroksella muutuva siemen
return(randomNumber);
}