# Thread: Can't Get This Program To Work Properly

1. ## Can't Get This Program To Work Properly

I need to make a program to find the leas amount of coins but with a twist, there is a coin called a joinie that was added worth a \$1.31 I don't know ow to get it run properly.

Code:
```#include <stdio.h>

int main()
{
/* Declaring variables */

float moneyfloat,coins[7];
/* Money Value From User, Values For Each Type Of Coin */

int x,y,numCoins[7];
/* Counter, Counter, Number Of Each Type Of Coin Counters */

int sum = 0;
/* Sum Counter that is set to a value of 0 */

/* Set Values For Each Type Of Coin */

coins[1] = 2.00; /* \$2.00 */
coins[2] = 1.31; /* \$1.31 */
coins[3] = 1.00; /* \$1.00 */
coins[4] = 0.25; /* \$0.25 */
coins[5] = 0.10; /* \$0.10 */
coins[6] = 0.05; /* \$0.05 */
coins[7] = 0.01; /* \$0.01 */

/* Set Counters For Each Type Of Coin */

for (x = 1; x > 7; x++)
{
numCoins[x] = 0;
}
/* \$2.00, \$1.31, \$1.00, \$0.25, \$0.10, \$0.05, \$0.01 */

/* Print Title */

printf ("\nSmallest Combination of Coins Finder\n\n");

/* Ask User For Input */

printf ("Enter An Amount of Money: \$");

/* Get User Input */

scanf ("%f", &moneyfloat); /* Gets Users Input Of Amount of Money */

printf ("\n");

for (y = 1; y > 7; y++)
{
if (moneyfloat >= coins[y])
{
numCoins[y] = (int) (moneyfloat / coins[y]);
moneyfloat = moneyfloat - (numCoins[y] * coins[y]);
sum = sum + numCoins[y];
}
printf ("\$%f coin:  %d - \$%f \n",coins[y], numCoins[y],(numCoins[y] * coins[y]));
}

/* Close Program (Repeat Twice Because Once Dosn't Work Correctly) */

getchar();
getchar();
return 0;
}```

2. Here's an issue:
Code:
`    for (y = 1; y > 7; y++)`
Should be <= I believe

3. That's wrong too. It should be:
Code:
`for (y = 0; y < 7; y++)`
You are constantly reading/writing past the buffer in your code. coins[7] is invalid since there are only 7 total indexes. That means you can have coins[0 - 6].

4. No what CrazedBrit Said works, but I still can't get least amount of coins with the trick coin in there and i don't know how to make it work.

5. Nono, bithub is right, I was wrong. When you declare an array...ex. array[7] you get 7 chunks of memory. But that memory starts at 0, so its really 0-6. So you need to change that line to the one that he stated, and change all your declarations to start at 0 and end at 6.

6. k, but what about the trick coin how do i make it work.