迷醉@ 发表于 2024-8-28 18:41:19

学校作业,看着没问题,但不是满分,求助下各位大佬

题目描述
众所周知,王多<・)))><<(以下简称<・)))><<)的二爷给了他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 发表于 2024-8-28 18:41:22

要帮助你解决问题,请提供具体的作业题目描述和你的解答内容,这样我才能更好地给予建议和帮助。谢谢!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-8-29 21:34:46

有乱码

柿子饼同学 发表于 2024-8-30 11:50:12

min1 要初始化为 0 吧, 不然是不知道的值

懋鼕 发表于 2024-9-3 17:37:11

你这里怎么能开数组时用变量呢,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]
查看完整版本: 学校作业,看着没问题,但不是满分,求助下各位大佬