首页 > 编程知识 正文

最好听的c语言,最好听的c语言排名

时间:2024-04-24 11:43:01 阅读:333565 作者:VLHA

本文目录一览:

C语言课程设计写了一个可以画地图的程序 求取一个好听的名字= ̄ω ̄=

名字的话最好取英文而且是不能输入空格的

我给你的建议是 drawingmap DIYmap Imap

望采纳!

求编程c语言

我以前写过的实验,但是是c++的。稍微改一下头文件和输入输出的格式就可以了。我们快熄灯了,没时间帮你改了。报告太长了,就不发上来了,要是需要的话再说。

#includeiostream

#includecmath

#includecstdlib

using namespace std;

#define MAX 1000

struct save1

{

float n[MAX];

int top;

}stack1;

struct save2

{

char n[MAX];

int top;

}stack2;

//stack1存储数字,stack2存储运算符号.

bool stackempty(save1 s)//判断是否为空

{

if (s.top== -1)

return 1;

else

return 0;

}

bool stackempty2(save2 s)//判断是否为空

{

if (s.top== -1)

return 1;

else

return 0;

}

void push(save1 s,float e)//将e入栈

{

if(s.top==MAX-1)

{

cout"栈已满"endl;

return ;

}

s.top++;

s.n[s.top]=e;

}

void push2(save2 s,char e)//将e入栈

{

if(s.top==MAX-1)

{

cout"栈已满"endl;

return ;

}

s.top++;

s.n[s.top]=e;

}

void pop(save1 s,float e)//将栈顶元素出栈,存到e中

{

if(s.top==-1)

{ cout"栈为空"endl; }

else

{e=s.n[s.top]; s.top--; }

}

void pop2(save2 s,char e)//将栈顶元素出栈,存到e中

{

if(s.top==-1)

{ cout"栈为空"endl; }

else

{e=s.n[s.top]; s.top--; }

}

int in(char e)//e在栈内的优先级别

{

if(e=='-' || e=='+') return 2;

if(e=='*' || e=='/') return 4;

if(e=='^') return 5;

if(e=='(') return 0;

if(e==')') return 7;

return -1;

}

int out(char e)//e在栈外的优先级别

{

if(e=='-' || e=='+') return 1;

if(e=='*' || e=='/') return 3;

if(e=='^') return 6;

if(e=='(') return 7;

if(e==')') return 0;

return -1;

}

void count(float a,char ope,float b)//进行计算并将计算结果入栈

{

float sum;

if(ope=='+') sum=a+b;

if(ope=='-') sum=a-b;

if(ope=='*') sum=a*b;

if(ope=='/') sum=a/b;

if(ope=='^') sum=pow(a,b);

push(stack1,sum);

}

int main()

{

int i=0,len,j,nofpoint,g=0;//len表示输入式子的长度。 g表示读入的字符是否是字母变量、数字以及运算符。

float a,b;//a、b用来存储操作数栈中弹出的操作数,便于代入函数中进行计算。

char line[MAX],operate,temp[20];

cout"请输入表达式"endl;

cinline;

len=strlen(line);

stack1.top=-1;//将栈置为空

stack2.top=-1;//将栈置为空

while(1)

{

g=0;

if(isdigit(line[i]))//若读入的字符为数字,则继续判断下一个字符,直到下一个字符不是数字或者不是小数点,即可保证该操作数是完整的小数,然后将该数入操作数栈。

{

j=0; g=1;

nofpoint=0;//记录所存的数中小数点的个数

while(isdigit(line[i]) || line[i]=='.')

{

if(line[i]=='.') nofpoint++;

temp[j++]=line[i];

i++;

if(i=len) break;

}

if( nofpoint1 || (ilen(line[i]!='-' line[i]!='+' line[i]!='*' line[i]!='/' line[i]!='^' line[i]!=')')) )

{ cout"表达式有错"endl; return 0; }//所存数中含有不止一个小数点,或者数字后面跟的不是“+、-、*、/、^、)”,则为错误

temp[j]='';

b=atof(temp);

push(stack1,b);

if(i=len) break;

}

else

{

if(line[i]=='-' || line[i]=='+' || line[i]=='*' || line[i]=='/' ||

line[i]=='^' || line[i]=='(' || line[i]==')' ) //若读入的字符为运算符的情况

{

g=1;

if(line[i]=='(' i==len) { cout"表达式有错"endl; return 0; }// “(”放表达式最后面,错误

if(line[i]=='-' || line[i]=='+' || line[i]=='*' || line[i]=='/' || line[i]=='^')

{

if(i==len) { cout"表达式有错"endl; return 0; }//“+、-、*、/、^”放在表达式最后面,错误

if( (!isdigit(line[i+1])) (!isalpha(line[i+1])) line[i+1]!='(')//“+、-、*、/、^”后面跟的不是数字或者变量,错误

{ cout"表达式有错"endl; return 0; }

}

if(line[i]=='-' (i==0 || line[i-1]=='(' ))//运算符是负号

{

push(stack1,0);

push2(stack2,line[i]);

i++;

}

else

{ //读入的运算符与运算符栈的栈顶元素相比,并进行相应的操作

if(in(stack2.n[stack2.top])out(line[i])||stackempty2(stack2)) { push2(stack2,line[i]);i++;}

else

if(in(stack2.n[stack2.top])==out(line[i])) {i++; stack2.top--;}

else

if(in(stack2.n[stack2.top])out(line[i]))

{

pop(stack1,a);

pop(stack1,b);

pop2(stack2,operate);

count(b,operate,a);

}

if(i=len) break;

}

}

else

{

if(isalpha(line[i]))//读入的字符是字母变量的情况

{

g=1;

cout"请输入变量";

while( isalpha(line[i])) { coutline[i]; i++; }

cout"的值"endl;

cinb;

push(stack1,b);

if(i=len) break;

if(line[i]!='-' line[i]!='+' line[i]!='*' line[i]!='/' line[i]!='^' line[i]!=')')//变量后面跟的不是“+、-、*、/、^、)”,则为错误

{ cout"表达式有错"endl; return 0; }

}

}

}

if(g==0) { cout"表达式有错"endl; return 0; }//g=0表示该字符是不符合要求的字符

}

while(stack2.top!=-1)//读入结束后,继续进行操作,直到运算符栈为空

{

pop(stack1,a);

pop(stack1,b);

pop2(stack2,operate);

if(operate=='(' || operate==')') //括号多余的情况

{ cout"表达式有错"endl; return 0; }

count(b,operate,a);

}

coutstack1.n[stack1.top]endl;

return 0;

}

简单的c语言

对,是数据溢出了, 有符号int 类型的数据最对只能从 负的 2的15次方即(-32768) 到正的 2的15次方-1即32767.

所以32769 超过的部分得从 -32768算起 就是-32767

够详细的吧

b 删除前一个字符,,' 输出单引号 \输出 n 是换行嘛

所以输出 re'hi'you 经过实际运行

如何快速理解C语言

新手如何学习c语言 第一:一些概念。 c语言是一门程序设计语言,有一些标准,比较重要的是ansi c(好像是c89)和c99。 数据结构包括逻辑结构和物理结构。逻辑结构是数据元素集合和定义在集合上的关系。物理结构是逻辑结构在计算机中的实现。 lcc、vc、tc、gcc都是c语言编译器,一般包括集成开发环境,编译器和链接器及辅助工具 我们书写的是c源程序,源程序通过编译器编译为中间文件,中间文件经链接器链接生成可执行文件。不同操作系统可执行文件不同。中间文件也有几个标准,微软使用的和linux下通用的有差异。 第二:学习什么。 个人认为程序设计学习的重点放在数据结构的学习上,但是这种学习要有一个平台,比如c语言。 学习c语言首先要掌握基本语法,常量、变量、类型、及顺序结构、分支结构和循环结构的意义及用法。进一步学习构造类型如指针、结构、函数的意义和用法。 c语言提供一些标准函数以减轻程序设计工作量,这些函数我们自己也可以实现。即使不依靠函数库,只有编译器,理论上就足够了。事实上,提供的标准函数效率都很高,使用很频繁,没有自己实现的必要,所以掌握常用函数是非常必要的,但是要注意函数的适用范围。 继续学习因人而异,应该可以独立选择了。 第三:如何学习。 强调多实践,c语言的学习要经常上机,多写程序才能逐步提高。 推荐书籍:c programming languge。有中译本,但最好看英文版。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。