怎么编程“输入三个数,要求输出最大值”?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么编程“输入三个数,要求输出最大值”?相关的知识,希望对你有一定的参考价值。

#include "stdio.h"

int max(int x,int y,int s)//声明,如果被调函数在主函数后

main()

int a,b,c,d;//定义4个整形变量

scanf("%d,%d,%d",&a,&b,&c);//输入3个数 

d=max(a,b,c);//调用MAX函数,其中3个参数a,b,c,把结果存入变量d中

printf("max=%d",d);//输出d

getch();

int max(int x,int y, int s) //自定义函数,其中3个形式参数x,y,s

int z;  //定义实际参数z

if(x>y)z=x;// 如果,x大于y,把x放入z中

else z=y;// 否则把y放入z中

if(y>s)z=y;// 如果y大于s,那么把y放入z

else z=s;// 否着把s放入z

return(z);//每次比较完返回z

参考技术A 获取三个数,设置变量ABC,判断a-b,a-c,b-c得出的数是否为正数,然后再用正数比就行 参考技术B 用冒泡,或者直接两个两个比较就完了,不知道你什么语言,但是应该有计算类,应该有max()类似的函数可以直接用

BLDC控制程序怎么编程

无刷电机6路换向PWM信号的程序,我想了想,半桥控制方法(下桥一直闭合,上桥壁PWM信号)用3个PWM管脚,这样进行编程是否可行?还是一般用6路的PWM模块(像2407dsp一样)这样编程才行。当然除了驱动电机运行还需检测一些其他量实现其他功能。

“(下桥一直闭合,上桥壁PWM信号)”???楼主是什么意思,将下桥全关?这样怎么成回路,没有回路电流如何流。一般BLDC的控制(功率管上)应该分直通调制和PWM波调制(也就是楼主说的PWM信号),由此出来的2V2组合,也就是有四种控制方式:上下都是直通调制、上下分别是直通和PWM波调制、上下分别是PWM波和直通调制(这种我没见过)、上下都是PWM波调制。看怎么用,负载要求和功耗要求都有那就用上下都PWM波调制合适。至于检测那就是位置和扭矩信息,具体就看你用什么要求的了。 参考技术A   编程示例如下:
  Uint16 shunNum[6]=0x0f3d,0x03fd,0x03df,0x0fd3,0x0df3,0x0d3f;
  //顺时针换向表
  interrupt void T1_Cap_isr(void);
  int count=0;
  int mm=0;
  void main(void)
  
  /*初始化系统*/
  InitSysCtrl();
  /*关中断*/
  DINT;
  IER = 0x0000;
  IFR = 0x0000; //清中断
  // LedCount = 0;
  /*初始化PIE*/
  InitPieCtrl();
  /*初始化PIE中断矢量表*/
  InitPieVectTable();
  /*初始化定时器0*/
  InitCpuTimers();
  /*初始化外设*/
  InitPeripherals();
  /* 初始化事件管理器,确定PWM*/
  InitEv();
  /*受EALLOW保护的捕捉中断矢量,重新映射捕捉中断入口*
  /EALLOW;
  //允许访问EALLOW保护的寄存器
  PieVectTable.CAPINT1 = &T1_Cap_isr;
  //指向中断服务寄存器捕捉1的地址
  PieVectTable.CAPINT2 = &T1_Cap_isr;
  PieVectTable.CAPINT3 = &T1_Cap_isr;
  //重新EALLOW保护
  /*使能中断捕捉,向量是查表得,INT3.5-INT3.7*/
  PieCtrl.PIEIER3.bit.INTx7=1;
  PieCtrl.PIEIER3.bit.INTx6=1;
  PieCtrl.PIEIER3.bit.INTx5=1;
  IER|= M_INT3;
  //使能INT3
  EDIS;
  EINT; // 开放全局中断,Enable Global interrupt INTM
  ERTM; // 开放全局实时中断,Enable Global realtime interrupt DBGM
  for(;;)
  
  
  
  interrupt void T1_Cap_isr(void)
  
  mm=1;
  //换向,
  if (count==5)
  count=0;
  else count++;
  EvaRegs.ACTR.all=shunNum[count];
  EvaRegs.EVAIFRC.all=0x0007;
//三个捕捉中断标志位清零
  //响应中断寄存器清除,写1清0,进而才能接收下一外围中断
  PieCtrl.PIEACK.bit.ACK3=1;
  PieCtrl.PIEIFR3.all = 0;
  
参考技术B 都可以,多看看资料,有几种方法,每个方法都有自己的特点,DSP核的处理器常用你说的2407的方法 参考技术C ”闭合“就是导通。我知道各种驱动方式啦,我是说编程具体实现。当然了,有像2407这种3路SPWM驱动最好了,如果CPU只是有几路单独的PWM,是不是通过编程也容易实现

以上是关于怎么编程“输入三个数,要求输出最大值”?的主要内容,如果未能解决你的问题,请参考以下文章

怎么编程病毒?

显示0.000该怎么编程

linux 怎么进入shell编程模式

UG编程怎么进行2D编程?

ug编程中,怎么使用全局命令?

用PowerBuilder怎么编程时,怎么调用帮助文件?