鱼C论坛

 找回密码
 立即注册
查看: 143|回复: 4

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

[复制链接]
发表于 2024-8-28 18:41:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目描述
众所周知,王多<&#12539;)))><<(以下简称<&#12539;)))><<)的二爷给了他10个e让他花完。<&#12539;)))><<很是烦恼,这天他忽然想到,他可以炒股来花光这10e。

(10个e这个数据与本题无关)

接下来 n 天是股市的黄金时期,<&#12539;)))><<将在这n天内的第 i 天买入 m 股股票,并在第j天全部抛出(1=<i<=n,i<=j<=n),狠狠的亏他一笔。

他看中的股票每天的价格为ai,请计算出<&#12539;)))><<最多可以亏多少钱。

输入
第一行输入两个正整数n,m,分别代表天数与购买的股数(1<=n,m<=1000)。

第二行输入n个数ai,代表每天股票的价格(1<=ai<=1000)

输出
输出一个整数,代表<&#12539;)))><<最大亏损
样例输入 复制
5 10
1 5 4 1 3
样例输出 复制
40
提示
样例中,<&#12539;)))><<将会在第2天买入股票,并在第4天抛出,狠狠赚(?)他一笔

第二天买入花费50,第四天卖出获得10,共计赚-40,也就是亏了40

值得注意的是,<&#12539;)))><<不可能在第2天买入股票,然后在第一天卖出,因为他不是xialuo,不会穿越时间。
下面是我的解法:
#include<stdio.h>
int main()
{
        int n,m,min1;
        scanf("%d%d",&n,&m);
        int d[n];
        for(int i=0;i<n;i++){
                scanf("%d",&d[i]);
        }
        for(int j=1;j<n;j++){
                for(int i=0;i<j;i++){
                        int min=-(d[j]-d[i]);
                        if(min>min1){
                                min1=min;
                        }
                }
        }
        printf("%d",min1*m);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-8-28 18:41:22 | 显示全部楼层
要帮助你解决问题,请提供具体的作业题目描述和你的解答内容,这样我才能更好地给予建议和帮助。谢谢!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-29 21:34:46 | 显示全部楼层
有乱码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-30 11:50:12 | 显示全部楼层
min1 要初始化为 0 吧, 不然是不知道的值

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-3 17:37:11 | 显示全部楼层
你这里怎么能开数组时用变量呢,d[n]会报错吧,我写了一个,你看看对不对(不知道有没有漏洞):
#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[j] - p[i]) * 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[i]); // 输入股票价格
    }
    max = defict(a, n, m); // 求最大亏损
    printf("最大亏损为:%d", max);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-17 03:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表