c - 如何使用循环打印多个最大值
问题描述
试图计算电压达到最大值的频率,我可以打印最近的最大值,但可能有较低的频率值可以达到最大电压。
我可以通过以 10 为增量将循环从 + 切换到 - 从或到 1000000 来获得最高或最低频率。
尝试嵌套 if 语句VO > voMax
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define PI 3.14f
#define Vi 5
#define L 4.3e-4
#define C 5.1e-6
int getFreq();
long getResist();
float getVO(float XL, float XC, int R);
float getXC(int f);
float getXL(int f);
int main()
{
long resist, freq, fMax;
float XL, XC, VO, voMax;
voMax = 0;
fMax = 0;
resist = getResist();
for (freq = 1000000; freq >= 0; freq -= 10)
{
XL = getXL(freq);
XC = getXC(freq);
VO = getVO(XL, XC, resist);
if (1000000 == freq)
{
fMax = freq;
voMax = VO;
}
else if (VO > voMax)
{
fMax = freq;
voMax = VO;
}
}
printf("VO = %f Frequency = %d\n", voMax, fMax);
getch();
return 0;
}
float getXL(long f)
{
float XL;
XL = 2 * PI * f * C;
return XL;
}
float getXC(long f)
{
float XC;
XC = 1 / (2 * PI * f * C);
return XC;
}
float getVO(float XL, float XC, long R)
{
float VO;
VO = (Vi * R) / sqrt((XL - XC) * (XL - XC) + R * R);
return VO;
}
int getFreq()
{
int freq;
freq = 0;
printf("please enter a frequency:");
scanf("%d", &freq);
return freq;
}
long getResist()
{
int resist;
resist = 0;
printf("please enter a resistance:");
scanf("%d", &resist);
return resist;
}
我希望电压以多个频率打印最大值。
解决方案
好吧,您想要的是生成“大量”数据,然后进行一些分析。我实际上会分两步实现它:
- 生成数据(并将其保存在数组或文件中)
- 对这些数据进行您需要的任何分析。
通过这种清晰的方法获得所需的结果后,您可以进入下一步并尝试根据您需要的任何优化规则来优化算法。
我希望电压以多个频率打印最大值。
我认为你需要一个小的代码更新。您有以下顺序:
voMax = 0;
fMax = 0;
resist = getResist();
for (freq = 1000000; freq >= 0; freq -= 10)
{
你可能应该有:
fMax = 0;
resist = getResist();
for (freq = 1000000; freq >= 0; freq -= 10)
{
voMax = 0;
(我在“for”中移动了“voMax = 0;”)。
这样,您可以计算所有频率的最大电压,而不受其他频率的干扰。
推荐阅读
- cypress - Cy.get().type() 似乎没有注册为键盘事件
- python - 从嵌套列表创建字典列表
- javascript - (React 渲染)SetInterval 只是保持速度更快且不可预测
- google-analytics - 如何将谷歌标签管理器标签和触发器导出到 Excel 或谷歌工作表文件中?
- python - 名为“TypeError:0-d 张量上的迭代”的错误
- javascript - web3 从合约调用的函数不起作用
- java - JFreeChart 未在 .jar (Gradle) 中提取
- javascript - 引脚验证
- python - 为什么 df.fillna() 只填充一些行和第一列
- uima - NLP 管道、DKPro、Ruta - 缺少描述符错误