跪求C语言大佬,帮忙翻译代码,万分感谢!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跪求C语言大佬,帮忙翻译代码,万分感谢!!!相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include<string>
#include<vector>
using namespace std;
int pr(char ch)

if (ch == '*' || ch == '/')
return 1;
if (ch == '+' || ch == '-')
return 0;
if (ch == '(')
return -1;
else
return -2;

string infixTopostfix(const string&expression)

int t1 = 0, t2 = 0;
vector<char>ITP;
string backup,a;
a = expression;
for (unsigned int i = 0; i < a.length(); i++)

if (a[i] >= '0'&&a[i] <= '9')
backup+=a[i];
else if (a[i] == '(')
ITP.push_back(a[i]);
else if (a[i] == ')')

while (ITP.back() != '(' && !ITP.empty())//vetor.at(vetor.size() - 1)

backup+=ITP.at(ITP.size() - 1);
ITP.pop_back();


else if (a[i] == '+' || a[i] == '-' || a[i] == '*' || a[i] == '/')

if (!ITP.empty() && (ITP.at(ITP.size() - 1) == '+'
|| ITP.at(ITP.size() - 1) == '-' ||
ITP.at(ITP.size() - 1) == '*' ||
ITP.at(ITP.size() - 1) == '/'))//这样保证刚开始时进来的和顶上的全是运算元

t1 = pr(a[i]);
t2 = pr(ITP.at(ITP.size() - 1));
if (t2 == -2)//

//cout << "System mistake!" << endl;
return "System mistake!";

else if (t2 >= t1)

while (!ITP.empty())//&&ITP.back()!='(')//&& ITP.at(ITP.size() - 1) != '(')

t1 = pr(a[i]);
t2 = pr(ITP.at(ITP.size() - 1));
if (ITP.back() != '('&&t2 >= t1)

backup+= ITP.at(ITP.size() - 1);
ITP.pop_back();

else if (t2 < t1)//防止这个a[i]可能入栈失败

ITP.push_back(a[i]);
break;

else if (ITP.back() == '(')

ITP.push_back(a[i]);
break;


if (ITP.empty())

ITP.push_back(a[i]);



else

ITP.push_back(a[i]);


else

ITP.push_back(a[i]);



while (!ITP.empty())

//cout <<" "<< ITP.back() << endl;
//ITP.pop_back();
if (ITP.back() != '(')

backup+= ITP.at(ITP.size() - 1);
ITP.pop_back();

else if (ITP.back() == '(')

ITP.pop_back();


return backup;

int main()


string b;
cout << "中序表达式:";
cin >> b;
cout<<"后序表达式:"<<infixTopostfix(b)<<endl;
cout << "中序表达式:";
cin >> b;
cout << "后序表达式:" << infixTopostfix(b) << endl;

return 0;

参考技术A 感谢要是能当饭吃,那该多好。 参考技术B 你这不是c语言,是c++吧? 参考技术C #include #include #include using namespace std; int pr(char ch) if (ch == '*' || ch == '/') return 1; if (ch == '+' || ch == '-') return 0; if (ch == '(') return -1; else return -2; string infixTopostfix(const string&expression) int t1 = 0, t2 = 0; vectorITP; string backup,a; a = expression; for (unsigned int i = 0; i < a.length(); i++) if (a[i] >= '0'&&a[i] = t1) while (!ITP.empty())//&&ITP.back()!='(')//&& ITP.at(ITP.size() - 1) != '(') t1 = pr(a[i]); t2 = pr(ITP.at(ITP.size() - 1)); if (ITP.back() != '('&&t2 >= t1) backup+= ITP.at(ITP.size() - 1); ITP.pop_back(); else if (t2 < t1)//防止这个a[i]可能入栈失败 ITP.push_back(a[i]); break; else if (ITP.back() == '(') ITP.push_back(a[i]); break; if (ITP.empty()) ITP.push_back(a[i]); else ITP.push_back(a[i]); else 参考技术D 加油加油加油加油

求C语言大师级别高手,本人外行,需要逐句弄懂其意思,求大师逐句翻译每行 翻译啊~~~~~~万分感谢 ~~~~

#include<at89x52.h>
#define uchar unsigned char
uchar recieve[20];
uchar c1,recieve_ok;
/*------------------------------
Us级延时子函数
-------------------------------*/
void delayus(unsigned int i) //延时:i>=12 ,i的最小延时单12 us

i=i/10;
while(--i);

/*------------------------------
ms级延时子函数
-------------------------------*/

void delayms(unsigned int n) //延时n ms

n=n+1;
while(--n)
delayus(900); //延时 1ms,同时进行补偿

void init_uart(void)

SCON=0x50; //SCON: 方式 1, 8-bit UART,允许接收
TMOD=0x20; //T1为方式2 用来产生波特率
PCON=0x00; //波特率不加倍;
TH1 =0xfd; //Baud:9600 fosc="11".0592MHz
TL1 =0xfd;
EA=1; //开总中断
ES=1; //开串口中断
TR1=1; //开开定时器1

/*-----------------------------------
发送单字节数据子函数
----------------------------------- */
void send_one_char(unsigned char ch)

ES=0;
SBUF=ch ;
while(TI==0);
TI=0;
ES=1;

/*-----------------------------------
发送多字节子函数
----------------------------------- */
void send_more_char(unsigned char *str,unsigned char strlen)

uchar k=0;
// ES=0; //???????
do

send_one_char(*(str+k));
k++;

while(k<strlen);
// ES=1;//???????
/*-----------------------------------

/*-----------------------------------
串口中断函数
----------------------------------- */
void uart_Interrupt() interrupt 4

if(RI)

if(SBUF==0xaa)

recieve[0]=0xaa;
c1=0;

if(recieve[0]==0xaa)

recieve[c1]=SBUF;
if(c1>15)

c1=0;
recieve[0]=0x00;

if(SBUF==0xbb)

recieve_ok=1;
c1=0;
recieve[0]=0x00;


c1++;


RI=0;
TI=0;

/*-----------------------------------
主函数
----------------------------------- */

void main()

init_uart();
P2_4=0;
while(1)

if(recieve_ok)

P2_4=1;
recieve_ok=0;
send_more_char(recieve,6);
send_one_char(recieve[1]);
send_one_char(recieve[2]);
send_one_char(recieve[3]);
send_one_char(recieve[4]);
send_one_char(recieve[5]);
delayms(400);
P2_4=0;


基本特性  1、C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。[15]
  2、C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。[15]
  3、C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。[15]
  4、C语言适用范围大:适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,优于其它高级语言,有一些大型应用软件也是用C语言编写的。[15]
  5、C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。[16] 

  6、C语言文件由数据序列组成:可以构成二进制文件或文本文件常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode(mac os x)等。[17]新特性  1、对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符,aligned_alloc函数以及<stdalign.h>头文件。

  2、_Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。

  3、_Generic 关键字。 

  4、多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,<threads.h>;头文件,里面包含了线程的创建和管理函数。 

  5、增强的Unicode的支持,基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>. 

  6、删除了 gets() 函数,使用一个新的更安全的函数gets_s()替代。 

  7、增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等。 

  8、增加了更多浮点处理宏。 

  9、匿名结构体/联合体支持,这个在gcc早已存在,C11将其引入标准。 

  10、静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。 

  11、新的 fopen() 模式,(“…x”),类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。

  12、新增 quick_exit() 函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。

  13、_Atomic类型修饰符和<stdatomic.h>头文件。
参考技术A 51单片机最基本的串行通信程序。。
还大师级别的C语言高手。。
随便去百度搜索51单片机串行通信,你就懂了。
参考技术B 单片机啊?直接看主函数嘛,就知道什么意思了。

以上是关于跪求C语言大佬,帮忙翻译代码,万分感谢!!!的主要内容,如果未能解决你的问题,请参考以下文章

初学编程,大家帮忙看下这道c语言题怎么做?万分感谢

求C语言大师级别高手,本人外行,需要逐句弄懂其意思,求大师逐句翻译每行 翻译啊~~~~~~万分感谢 ~~~~

求大佬帮忙看看简历有没有什么问题

请将CRC16的C语言算法,改造为JAVA语言算法,万分感谢!

C语言程序设计

c语言排序和查找?