[西门子] 2024年1月12日,每日一分钟练习C语言,学习路上不能停

[复制链接]
查看286 | 回复0 | 2024-6-28 08:04:18 | 显示全部楼层 |阅读模式
>学习工控知识,就来工控小新


农历十二月二日   2024/1/ 12


往期推荐
2024年1月10日,每日花费一分钟练习C语言

2024年1月11日,每日一分钟练习C语言,学习路上不能停





/ Daily Exercises
买卖股票的最佳时机
给定一个数组 prices ,它的第i个元素prices 表示一支给定股票第i天的价格。
你只能选择 某一天 买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0。
题目分析

我们要找到一个最低的买入价格和一个最高的卖出价格,使得它们的差值最大。我们需要注意以下几个方面:


-我们只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。这意味着我们不能在同一天买入和卖出,也不能先卖出再买入。


-我们需要返回我们可以从这笔交易中获取的最大利润。如果我们不能获取任何利润,返回0。这意味着我们需要考虑股票价格一直下跌的情况,此时我们不进行任何交易,利润为0。


- 我们需要处理给定的数组 prices,它的第i个元素 prices 表示一支给定股票第i天的价格。我们需要遍历这个数组,找到最佳的买入和卖出时机。
程序展示
基于以上的分析,我们可以写出以下的C语言程序:






























































#include <stdio.h>#include <stdlib.h>
// 定义一个函数,用于计算买卖股票的最大利润int max_profit(int *prices, int n) {    // 定义一个变量,用于存储最大利润,初始为0    int max_profit = 0;    // 定义一个变量,用于存储最低的买入价格,初始为第一天的价格    int min_price = prices[0];    // 循环遍历数组,从第二天开始    for (int i = 1; i < n; i++)   {        // 如果当前价格小于最低的买入价格,更新最低的买入价格        if (prices < min_price)     {            min_price = prices;        }        // 如果当前价格减去最低的买入价格大于最大利润,更新最大利润        if (prices - min_price > max_profit)     {            max_profit = prices - min_price;        }    }    // 返回最大利润    return max_profit;}
// 定义一个主函数,用于测试int main() {    // 定义一些测试用例    int test_cases[][6] =   {        {7, 1, 5, 3, 6, 4},        {7, 6, 4, 3, 1},        {1, 2, 3, 4, 5},        {5, 4, 3, 2, 1},        {3, 2, 6, 5, 0, 3}    };    // 定义测试用例的个数    int n = sizeof(test_cases) / sizeof(test_cases[0]);    // 循环遍历测试用例    for (int i = 0; i < n; i++)   {        // 打印测试用例和结果        printf("Test case %d: [", i + 1);        for (int j = 0; j < 6; j++)     {            printf("%d", test_cases[j]);            if (j < 5)       {                printf(", ");            }        }        printf("]\n");        printf("Result: %d\n", max_profit(test_cases, 6));        printf("\n");    }    return 0;}


程序测试

调试程序:启动VC6.0
输入若是【7,1,5,3,6,4】

则输出结果为5





源代码获取
#软件下载通道#



我用夸克网盘分享了「20240112」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/54dfa58ea375
(链接和提取码建议复制粘贴,手动输入容易出现错误)
#支持一下#
分享整理,测试发布不易 如果您方便的话可以帮忙点一下↓↓
谢谢大家!







下期题目


C语言题目:
统计各类字符个数
分别统计一个字符串中出现小写字母、大写字母、数字和3输入格式:
在一行中输入长度不超过40的字符串。
输出格式:
第一行中输出“小写字母=x”第二行中输出“大写字母=y输入样例:
sd2h b57 sA
输出样例:
小写字母=5
大写字母=1
数字=3
空格=2







点赞加关注,学习不迷路
微信公众号|工控小新
EPLAN电气绘图、TIA博图基础 、CAD、C语言教学、单片机基础、三菱PLC ... 每日持续更新中


发现“分享”“赞”了吗,戳我看看吧


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则