iT邦幫忙

0

c語言(最佳銷售策略)

  • 分享至 

  • xImage

設做包子成本為c,販售包子價格為p,每天能賣出m個包子,工讀生時薪為s,工作時數為h,若h>5,加發獎金bonus=10*h,毛利g=(p-c)m-sh,收益profit=g-bonus,找出profit最大的最佳銷售策略。
第一行輸入n,代表有n組測試資料,第二行開始有n組輸入,每一組輸入依序為c,k,s,接著連續輸入k對定價(p)及銷售量(m)。
https://ithelp.ithome.com.tw/upload/images/20210801/201395777FxZQ8OfUN.jpg
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n,i,j;
int c[10],k[10],s[10],h[10],p[10],m[10];
int bonus,g[10],profit[10];
int max=profit[0];
printf("n: ");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("c[%d] k[%d] s[%d] h[%d]: ",i,i,i,i);
scanf("%d %d %d %d",&c[i],&k[i],&s[i],&h[i]);
for(int j=0;j<k[i];j++)
{
printf("p[%d] m[%d]: ",j,j);
scanf("%d %d",&p[j],&m[j]);
}
}
for(int i=0;i<n;i++)
{
if(h[i]>5)
{
for(int j=0;j<k[i];j++)
{
g[j]=(p[j]-c[i])*m[j]-(s[i]h[i]);
bonus=10
h[i];
profit[j]=g[j]-bonus;
}
}
else
profit[j]=g[j];

}
   for(int j=0;j<k[i];j++)
{
if(profit[j]>max)
max=profit[j];
printf("%d %d %d\n",p[j],m[j],max);

}

system("pause");
return 0;
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2021-08-01 17:34:19

https://ithelp.ithome.com.tw/upload/images/20210801/20001787NVm2SfEgju.png

原題目

第一行輸入n,代表有n組測試資料,第二行開始有n組輸入,每一組輸入依序為c,k,s,接著連續輸入k對定價(p)及銷售量(m)。

應該改為

第一行輸入n,代表有n組測試資料,第二行開始有n組輸入,每一組輸入依序為c,k,s,h,接著連續輸入k對定價(p)及銷售量(m)。

今天是假日
如果明天還沒人回覆的話
我再來寫程式

如果你急的話
可以參考這篇
有兩點小小的不同:
1.題目比你的簡單
2.語法是 C++

程式如下
https://ithelp.ithome.com.tw/upload/images/20210802/20001787zkusojJF5y.png

10611014 iT邦新手 5 級 ‧ 2021-08-01 17:38:19 檢舉

謝謝您!

程式如上

10611014 iT邦新手 5 級 ‧ 2021-08-02 14:46:45 檢舉

謝謝!

我要發表回答

立即登入回答