学校作业,看着没问题,但不是满分,求助下各位大佬
题目描述众所周知,王多<・)))><<(以下简称<・)))><<)的二爷给了他10个e让他花完。<・)))><<很是烦恼,这天他忽然想到,他可以炒股来花光这10e。
(10个e这个数据与本题无关)
接下来 n 天是股市的黄金时期,<・)))><<将在这n天内的第 i 天买入 m 股股票,并在第j天全部抛出(1=<i<=n,i<=j<=n),狠狠的亏他一笔。
他看中的股票每天的价格为ai,请计算出<・)))><<最多可以亏多少钱。
输入
第一行输入两个正整数n,m,分别代表天数与购买的股数(1<=n,m<=1000)。
第二行输入n个数ai,代表每天股票的价格(1<=ai<=1000)
输出
输出一个整数,代表<・)))><<最大亏损
样例输入 复制
5 10
1 5 4 1 3
样例输出 复制
40
提示
样例中,<・)))><<将会在第2天买入股票,并在第4天抛出,狠狠赚(?)他一笔
第二天买入花费50,第四天卖出获得10,共计赚-40,也就是亏了40
值得注意的是,<・)))><<不可能在第2天买入股票,然后在第一天卖出,因为他不是xialuo,不会穿越时间。
下面是我的解法:
#include<stdio.h>
int main()
{
int n,m,min1;
scanf("%d%d",&n,&m);
int d;
for(int i=0;i<n;i++){
scanf("%d",&d);
}
for(int j=1;j<n;j++){
for(int i=0;i<j;i++){
int min=-(d-d);
if(min>min1){
min1=min;
}
}
}
printf("%d",min1*m);
return 0;
} 要帮助你解决问题,请提供具体的作业题目描述和你的解答内容,这样我才能更好地给予建议和帮助。谢谢!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 有乱码 min1 要初始化为 0 吧, 不然是不知道的值
你这里怎么能开数组时用变量呢,d会报错吧,我写了一个,你看看对不对(不知道有没有漏洞):
#include <stdio.h>
#include <stdlib.h>
int defict(int *p, int n, int m)
{
int max = 0;
int _;
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
{
_ = (p - p) * m;//求得其实收获的利润
if(max< -_)
max = -_;
}
return max;
}
void main()
{
int n, m, max;
int *a;
printf("请输入两个正整数,作为天数和购买股数(1<=n,m<1000):");
scanf("%d%d", &n, &m);
a = (int *)malloc(sizeof(int) * n);
printf("请输入n个数作为每天股票价格(1<=ai<=1000):");
for (int i = 0; i < n; i++)
{
scanf("%d", &a); // 输入股票价格
}
max = defict(a, n, m); // 求最大亏损
printf("最大亏损为:%d", max);
}
页:
[1]