>学习工控知识,就来工控小新
农历十二月二日 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 ... 每日持续更新中
发现“分享”和“赞”了吗,戳我看看吧
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |