Utskrift av en beräkning
Vad blir utskriften av resultatet av följande beräkning ?
int main(void)
{
double result = 1;
int val1 = 1, val2 = 2, val3 = 3, val4 = 4;
result += ++val1 * val2 + (double)((val2 * val3 + val4) % val3 / val1);
printf("%.2lf", result);
return 0; }
a. 4.00 b. 5.00 c. 5.50 d. 6.00
Tog bort dina skrikiga versaler. Det står i Pluggakutens regler (och i rutan där du skriver in din rubrik) att man skall undvika att skriva med bara stora bokstäver. /Smaragdalena, moderator
Har du testat sätta in värdena istället för variabelnamnen och sen räknat? Då är det bara två detaljer att hålla koll på, vad ++val1 innebär samt operationen %.
När man har tänkt ut vad svaret borde bli så kan man provköra också. Blir det inte det du väntar dig kan du fråga varför.
Hm, jag skulle aldrig ha ++variabel och samma variabel en gång till i samma uttryck. Jag tror det är odefinierat vad det blir, så uppgiftställaren ska ha smisk på fingrarna. Om nåt av de sannolika värdena är ett (och bara ett) bland svaren a-d så kan vi dock vara nöjda.
adamcl skrev:Har du testat sätta in värdena istället för variabelnamnen och sen räknat? Då är det bara två detaljer att hålla koll på, vad ++val1 innebär samt operationen %.
hej, aa jag har försökt räkna de men när jag kommer fram till % så allt blir förstörd. kan du visa mig hur man löser det?
Laguna skrev:Hm, jag skulle aldrig ha ++variabel och samma variabel en gång till i samma uttryck. Jag tror det är odefinierat vad det blir, så uppgiftställaren ska ha smisk på fingrarna. Om nåt av de sannolika värdena är ett (och bara ett) bland svaren a-d så kan vi dock vara nöjda.
Jag testade kompilera koden med GCC och Clang men den gick inte igenom (unsequenced modification and access), så det är mycket riktigt felaktigt.
Rita Hashim skrev:adamcl skrev:Har du testat sätta in värdena istället för variabelnamnen och sen räknat? Då är det bara två detaljer att hålla koll på, vad ++val1 innebär samt operationen %.
hej, aa jag har försökt räkna de men när jag kommer fram till % så allt blir förstörd. kan du visa mig hur man löser det?
Vet du vad % innebär? Svaret som ges är resten vid heltalsdivision. Vilken är täljaren och nämnaren, och vad bör då resten bli?
adamcl skrev:Laguna skrev:Hm, jag skulle aldrig ha ++variabel och samma variabel en gång till i samma uttryck. Jag tror det är odefinierat vad det blir, så uppgiftställaren ska ha smisk på fingrarna. Om nåt av de sannolika värdena är ett (och bara ett) bland svaren a-d så kan vi dock vara nöjda.
Jag testade kompilera koden med GCC och Clang men den gick inte igenom (unsequenced modification and access), så det är mycket riktigt felaktigt.
Det kanske har blivit förbjudet i senaste standarden. Tidigare gick det att kompilera.