får error
hej,jag håller på att göra ett gissa spel när jag försöker köra programmet så får jag fram 1 error som säger
"Error C4700 uninitialized local variable 'rand' " som jag kan se så har jag initiera rand genom att lägga till dom två måsvingar {}, det har inte hjälpt om jag förstått error meddelandet ,men hur som helst vad ska jag göra för att lösa detta problemet.
Ps: är ny på programmering
min kod:
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int random(int random) {
int num;
num = rand() % 100 + 1;
return (num);
}
void main(void) {
srand(time(NULL));
int guess;
int corectnum;
int rand, i, again = 0;
corectnum = random(rand);
printf("I’m ”thinking” of a number between 1 and 100, guess which!");
printf("guess:");
scanf_s("%d", &guess);
again++;
while (guess != corectnum) {
if (corectnum > guess){
printf("Your guess is too high, try again!");
}
if (corectnum < guess) {
printf("Your guess is too high, try again!");
}
printf("guess:");
scanf_s("%d",guess),
again++;
}
if (corectnum == guess) {
printf("Congratulations, that is correct!");
printf("You made %i attempts", again);
}
return 0;
}
Problemet ligger i att du dels har en variabel kallad rand och dels finns det en C runtime function som heter rand().
int rand, i, again = 0;
Byt namnet på "rand" till något annat och initialisera den så som du gjorde med "again".
Inom C så kan man betrakta funktionsnamn som adresser, så om du har en funktion som heter rand() och skriver bara rand utan (), så är det adressen i minnet där funktionen startar. Först när du anropar funktionen med argument så beter den sig som en funktion. Kort sagt undvik använda samma variabel namn och funktions namn
Det är bra praxis att initialisera alla variabler när man deklarerar dem.
Undvik att deklarera flera variabler på samma rad, istället ha en på varje rad, det är lättare att läsa. Helst skall man deklarera dem precis innan man använder dem och inte old school högst upp i början av funktionen.
En annan sak : Din "random( )" funktion tar ett argument, men du gör inget med den.
Din scanf_s har format specifier "%d" byt till " %d" för att ignorera \n
anders_k skrev:Problemet ligger i att du dels har en variabel kallad rand och dels finns det en C runtime function som heter rand().
int rand, i, again = 0;
Byt namnet på "rand" till något annat och initialisera den så som du gjorde med "again".
Inom C så kan man betrakta funktionsnamn som adresser, så om du har en funktion som heter rand() och skriver bara rand utan (), så är det adressen i minnet där funktionen startar. Först när du anropar funktionen med argument så beter den sig som en funktion. Kort sagt undvik använda samma variabel namn och funktions namn
Det är bra praxis att initialisera alla variabler när man deklarerar dem.
Undvik att deklarera flera variabler på samma rad, istället ha en på varje rad, det är lättare att läsa. Helst skall man deklarera dem precis innan man använder dem och inte old school högst upp i början av funktionen.
En annan sak : Din "random( )" funktion tar ett argument, men du gör inget med den.
Din scanf_s har format specifier "%d" byt till " %d" för att ignorera \n
ok,nu har jag fixat koden,och den funkar köra. när jag körde programmet så frågade den inte samma som på min printf("I’m ”thinking” of a number between 1 and 100, guess which!"); istället så skrev den ("IÆm öthinkingö of a number between 1 and 100") vet du vad som är problemet?
mattegeni2000 skrev:
när jag körde programmet så frågade den inte samma som på min printf("I’m ”thinking” of a number between 1 and 100, guess which!"); istället så skrev den ("IÆm öthinkingö of a number between 1 and 100") vet du vad som är problemet?
Ändra till
printf("I am thinking of a number between 1 and 100, guess which!");
Kör programmet. Vad händer då?
Fundera på varför det blir annorlunda.
Yngve skrev:mattegeni2000 skrev:när jag körde programmet så frågade den inte samma som på min printf("I’m ”thinking” of a number between 1 and 100, guess which!"); istället så skrev den ("IÆm öthinkingö of a number between 1 and 100") vet du vad som är problemet?
Ändra till
printf("I am thinking of a number between 1 and 100, guess which!");
Kör programmet. Vad händer då?
Fundera på varför det blir annorlunda.
tack så mycket,fixade det