
-----------------------------------
jamonathin
Sun Sep 24, 2006 7:18 pm

Strange output
-----------------------------------
Hey all, I haven't done C in forever and i decided to do a sample problem out of my textbook.  I recently got lcc-win32 as my compiler, and just started to use it today.

The problem is very simple - You have 2 yards. You have the lengths and widths of the yards and the houses on them, determine the leftover (grass area).
Now im probabily doing something wrong in my printf command, but i kept getting a HUGE number for a very small input.  And to test it i put the printf result part at the top (where the areas should be 0), yet i still get some some HUGE number . . . wtf mayte?


#include 

int main ()
{
	int lengthYard1 = 0, widthYard1 = 0, lengthHouse1 = 0, widthHouse1 = 0;
	int lengthYard2 = 0, widthYard2 = 0, lengthHouse2 = 0, widthHouse2 = 0;
	int areaYard1 = 0, areaYard2 = 0;

	// Here's what I dont get.
	printf ("The area of grass on Yard 1: %d",&areaYard1);
	printf ("\nThe area of grass on Yard 2: %ld\n\n",&areaYard2);
	//

	// Getting length and widths of first yard
	printf ("Enter Length of Yard1 and Width of Yard1: ");
	scanf ("%d%d",&lengthYard1, &widthYard1);
	printf ("\nEnter Length of House1 and Width of House1: ");
	scanf ("%d%d", &lengthHouse1, &widthHouse1);

	// Getting length and widths of second yard
	printf ("\n\nEnter Length of Yard2 and Width of Yard2: ");
	scanf ("%d%d",&lengthYard2, &widthYard2);
	printf ("\nEnter Length of House2 and Width of House2: ");
	scanf ("%d%d", &lengthHouse2, &widthHouse2);

	// "The calculation"
	areaYard1 = (lengthYard1 * widthYard1) - (lengthHouse1 * widthHouse1);
	areaYard2 = (lengthYard2 * widthYard2) - (lengthHouse2 * widthHouse2);

	// Same output as before
	printf ("The area of grass on Yard 1: %d",&areaYard1);
	printf ("\nThe area of grass on Yard 2: %d\n\n",&areaYard2);

	return 0;
}


Yard1: 1245036
Yard2: 1245032

-----------------------------------
md
Sun Sep 24, 2006 7:24 pm


-----------------------------------
don't pass pointers; just pass the ints

-----------------------------------
Tony
Sun Sep 24, 2006 8:11 pm


-----------------------------------
yeah, &areaYard1 actually prints the address of the variable, not the value stored there. Notice how your yard1 and yard2 are 4 units appart. Incidently the space reserved for a single integer variable is 4 bytes :wink:

-----------------------------------
jamonathin
Sun Sep 24, 2006 8:38 pm


-----------------------------------
ooooo, lol thanks  :doh:
