Ok here is my program
Code:/* Project 5 solution 11/14/2005 by Phil Pliuskonis */ #include<stdio.h> // Function prototypes void title(void); void initial(void); void inputrate(void); void inputdata(void); void process(void); void unit_price(void); void sales_cost_ammt(void); void item_prof(void); void output_1(void); void totals(void); void loop_out(void); void high_prof(void); void calc_ta(void); void rpt_out(void); void item_number(void); // Data declarations int code[20]; int qty[20]; int ucost[20]; int uprice[20]; int saleamt[20]; int costamt[20]; int itemprof[20]; int tsales, tcost, tunits, ttax, tprof, hiprof, hicode, avgprof, j, x, i, p, q, r, w, t; float profrate, trate; char more_item; main() { title(); initial(); inputrate(); item_number(); while (more_item !='N') { process(); } calc_ta(); rpt_out(); return 0; } void title(void) { printf("\nProject 5 by: Phil Pliuskonis\n"); return; } void inputdata(void) { for (x=0; x<j; ++x) { printf("\nInput item code: "); scanf("%d", &code[x]); } for (x=0; x<j; ++x) { printf("\nInput item quantity: "); scanf("%d", &qty[x]); } for (x=0; x<j; ++x) { printf("\nInput unit cost: "); scanf("%d", &ucost[x]); } return; } void inputrate(void) { printf("\nInput tax rate (decimal number) : "); scanf("%f", &trate); printf("\nInput profit rate (decimal number) : "); scanf("%f", &profrate); return; } void item_number(void) { printf("\n How many items do you have to input today? :"); scanf("%d", &j); return; } void initial(void) { tsales = tcost = tunits = hiprof = j = p = q = r = w = x = i = t = 0; more_item = 'Y'; return; } void process(void) { inputdata(); unit_price(); sales_cost_ammt(); item_prof(); output_1(); totals(); high_prof(); loop_out(); return; } void unit_price(void) { for (t=0; t<j; ++t) { uprice[t]= ucost[t] * profrate + ucost[t]; } return; } void sales_cost_ammt(void) { for (p=0; p<j; ++p) { saleamt[p] = qty[p] * uprice[p]; costamt[p] = qty[p] * ucost[p]; } return; } void item_prof(void) { for (q=0; q<j; ++q) { itemprof[q] = saleamt[q] - costamt[q]; } return; } void output_1(void) { printf("%4s %13s %9s %10s %13s %12s %11s\n", "Item", "Quantity Sold", "Unit Cost", "Unit Price", "Sales Ammount", "Cost Ammount", "Item Profit"); for ( i = 0; i < j; ++i ) { printf("%4d %13d %9d %10d %13d %12d %11d\n", code[i], qty[i], ucost[i], uprice[i], saleamt[i], costamt[i], itemprof[i]); } return; } void totals(void) { for (w=0; w<j; ++w) { tsales = tsales + saleamt[w]; tcost = tcost + costamt[w]; tunits = tunits + qty[w]; } return; } void high_prof(void) { for (r=0; r<j; ++r) { if (itemprof[r] > hiprof) { hiprof = itemprof[r]; hicode = code[r]; } } return; } void loop_out(void) { printf("\n Are there any more items to process? (Y/N): "); fflush(stdin); scanf("%c", &more_item); if (more_item == 'n') { more_item = 'N'; } return; } void calc_ta(void) { tprof = tsales - tcost; avgprof = tprof / tunits; ttax = trate * tsales; return; } void rpt_out(void) { printf("Total sales: %d\n", tsales); printf("Total Cost: %d\n", tcost); printf("Total profit: %d\n", tprof); printf("Average profit: %d\n", avgprof); printf("Total tax: %d\n", ttax); printf("High profit: %d\n", hiprof); printf("High item code: %d\n", hicode); return; }
Here is the output
Now as you can see, I am having trouble getting the correct output.Code:Item Quantity Sold Unit Cost Unit Price Sales Ammount Cost Ammount Item Profit 121 75 50 50 3750 3750 0 145 50 100 100 5000 5000 0 201 40 150 150 6000 6000 0 225 10 300 300 3000 3000 0 275 22 450 450 9900 9900 0 331 20 600 600 12000 12000 0 335 21 700 700 14700 14700 0 360 10 1000 1000 10000 10000 0 444 15 500 500 7500 7500 0 445 20 500 500 10000 10000 0 Are there any more items to process? (Y/N): n Total sales: 81850 Total Cost: 81850 Total profit: 0 Average profit: 0 Total tax: 0 High profit: 0 High item code: 0
I narrowed it down and determined that it is all happening because profrate is pretty much = 0.
I input it correctly when I run the program (is supposed to be .2) but I can't figure out why it doesn't take. In the output it keeps acting like 0.
We are re visiting this program (for school), and the first time I did it I couldn't get it to work either. I ended up hardcoding in profrate =.2. That won't work this time however because the assignment requires that it be from input.
Please help, why won't profrate take the .2 value?



LinkBack URL
About LinkBacks


