Beräkningsuppgifter
Hej!
Jag får inte till rätt beräkning: skriver in ett tal, ett andra, men svaret blir inte korrekt...
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int dagslon, antaldagar, lon;
printf("Vad ar din dagslon?:");
scanf("%d", &dagslon);
printf("Hur manga dagar har du arbetat:");
scanf("%d", &antaldagar);
lon = dagslon * antaldagar;
printf("Din lon for de arbetade dagarna ar lon=%d:", &lon);
return 0;
}
Om jag då matar in först 500, därefter 23 som blir 11 500, får jag ett fel svar:
Din lon for de arbetade dagarna ar lon=1687682020:
Samma problem sker när jag utför andra övningsuppgifter, vad är det frågan om?
Tack på förhand!
Du försöker skriva ut &lon, vilket är minnesadress för lönen.
Det du egentligen ville göra var:
int main()
{
int dagslon, antaldagar, lon;
printf("Vad ar din dagslon?:");
scanf("%d", &dagslon);
printf("Hur manga dagar har du arbetat:");
scanf("%d", &antaldagar);
lon = dagslon * antaldagar;
printf("Din lon for de arbetade dagarna ar lon=%d:", lon);
return 0;
}
Jag förstår nu, stort tack och ha en fin helg!
Gör dig en tjänst också och använd fgets istället när du läser från tangentbordet. Det kommer att spara dig många huvudvärkar.
char buf[255];
if (fgets(buf, sizeof(buf), stdin) != NULL) {
if (sscanf(buf, "%d", &value) == 1) {
printf("%d\n", value);
}
else {
puts("fel format");
}
}