① c语言程序注解
main() { int a,b; /*定义两个整型变毁携量a,b*/ a=32767; /*整型变量a赋初值*/ b=a+1; /*整型变量b用表达式赋值*/ printf("\na=%d,a+1=%d\n",a,b); /*换行并打印 a= ,a+1 =,其中,a=后面跟变量a的值,a+1后面跟变量b的当前值*/ a=-32768; /*再次对变量a赋初值*/ b=a-1; /*再次用表达式对变量b赋值*/ printd("\na=%d,a-1=%d\n",a,b); /*换答蚂行并打印 a= ,a-1 =,其中,其中,a=后面跟变量a的值,a-1后面跟变量b的当前值*/ getch(); /*调用库函数getch()*/ } (2) main() { char c1,c2,c3; /*定义三个字符变量*/ c1='a'; /*为字符变量c1赋初值*/ c2='b'; /*为字符变量c2赋初值*/ c1=c1-32; /*用表达式为字符变量c1赋值*/ c2=c2-32; /*用表达式为字符变量c2赋值*/ c3=130; /*为字符变量c3赋初值*/ printf("\n%c %c %c\n"纤举伏,c1,c2,c3); /*换行并打印字符变量c1,c2,c3的值,打印完再换行*/ printf("%d %d %d\n",c1,c2,c3); /*打印字符变量c1,c2,c3的值为对应的数值格式*/ getch(); /*调用库函数getch()*/ }
② 在线求C语言程序(计算器)的注解~~ 不好意思,虽然不是我写的,但是急着用,希望作者不要生气
/*以下是一个用于对任意表达式处理的计算器程序代码*/
#include<stdio.h>// c语言输入输出函数处理
//#include<stdlib.h>
#include<math.h> /*数学库函数*/
#include<string.h>/*字符串处理函数*/
//<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
#define MAX_SIZE 256 //处理字符串的最大长度
enum BOOL{FALSE,TRUE};//定义枚举类型变含蔽量
typedef struct tagOPERATE{
double Operand;//定义操作数
char Operator;//定义操竖侍作符(+ - * / ^)
}OPERATE,*LPOPERATE;
void PostSrc(char *src,LPOPERATE lpOperator);
int IsDigit(char);
int isp(char ch);
int icp(char ch);
int Locate(char ch);
int getOperand(char *s,int *len,double *oprd);
double Calculate(LPOPERATE lpOperator,double x);
void SrcFunProc(char *src);
void _Proc(char*src);
static char Operator[]="#(+-*/^"; //定义需要运算的字符
static int InPriority[]={0,1,3,3,5,5,7};//输入优先级
static int OutPriority[]={0,10,2,2,4,4,6};//输出优先级
int Locate(char ch) //对字符串表达式的定位
{
int i=0;
for(i=0;Operator[i]!='\0';i++)
if(Operator[i]==ch)
return i;
return -1;
}
int isp(char ch) //输入表达式的优先级
{
if('A'<=ch&&'Z'>=ch)
return 9;
else
return InPriority[Locate(ch)];
}
int icp(char ch) //输出表达式的优先级
{
if('A'<=ch&&'Z'>=ch)
return 8;
else
return OutPriority[Locate(ch)];
}
void _Proc(char*src)//将输入的字符余老吵串表达式一一入栈保护
{
char Buffer[MAX_SIZE];
char*p=src,*q=Buffer;
*q++=*p++;
while('\0'!=*p)
{
if('-'==*p&&'('==*(p-1))
{
*q++='0';
*q++='-';
p++;
}
else
*q++=*p++;
}
*q='\0';
strcpy(src,Buffer);
}
void SrcFunProc(char*src) //用于处理数学函数(sin cos tan ln log)的运算
{
char Buffer[MAX_SIZE];
char*p=src,*q=Buffer;
while(*p!='\0')
{
switch(*p)
{
case 's': // A代表sin
*q++='A';
p+=3;
break;
case 'c': // B代表cos
*q++='B';
p+=3;
break;
case 'e': //C代表exp
*q++='C';
p+=3;
break;
case 'l':
if('n'==*(p+1)) //D代表ln()
*q++='D';
else
*q++='E'; //E代表lg()
p+=2;
break;
case 't': //F代表tan()
*q++='F';
p+=3;
break;
default:
*q++=*p++;
break;
}
}
*q='\0';
strcpy(src,Buffer);
}
void PostSrc(char*src,LPOPERATE lpOperator) //后缀遍历处理表达式
{
char *p=src,y;
LPOPERATE lpOptr=lpOperator;
char stack[MAX_SIZE];
int top=-1;
double Operand;
int offset=0;
stack[++top]='#';
while('\0'!=*p)
{
if(IsDigit(*p))
{
getOperand(p,&offset,&Operand);
p+=offset;
lpOptr->Operand=Operand;
lpOptr->Operator=0;
lpOptr++;
}
else
if('x'==*p)
{
(lpOptr++)->Operator='x';
p++;
}
else
if('p'==*p)
{
lpOptr->Operand=3.14159266;
p+=2;
lpOptr->Operator=0;
lpOptr++;
}
else
if(')'==*p)
{
for(y=stack[top--];y!='(';y=stack[top--])
(lpOptr++)->Operator=y;
p++;
}
else
{
for(y=stack[top--];isp(y)>icp(*p);y=stack[top--])
(lpOptr++)->Operator=y;
stack[++top]=y;
stack[++top]=*p++;
}
}
while(top!=-1)
(lpOptr++)->Operator=stack[top--];
}
int IsDigit(char ch) //判断是否为数字
{
if(('0'<=ch&&'9'>=ch)||'.'==ch)
return TRUE;
return FALSE;
}
int getOperand(char *s,int *len,double *oprd)//获取操作数即字符串表达式
{
char *p = s,ch = *s++;
double z = 0,x = 0;
int bits = 0;
int point = FALSE;
while( IsDigit(ch) == TRUE){
if (ch == '.'){
if (point == TRUE)
return FALSE;
point = TRUE;
}
else {
if (point == TRUE){
x *= 10;
x += ch - '0';
bits++;
}
else {
z *= 10;
z += ch - '0';
}
}
ch = *s++;
}
while(bits-- > 0) x /= 10;
z += x;
*oprd = z;
*len = s - p - 1;
return TRUE;
}
double Calculate(LPOPERATE lpOperator,double x) //对字符串表达式的运算处理
{
double stack[MAX_SIZE],y1,y2;
int top=-1;
LPOPERATE lpOptr=lpOperator;
stack[++top]=0;
while(lpOptr->Operator!='#')
{
if(!lpOptr->Operator)
stack[++top]=(lpOptr++)->Operand;
else
if('x'==lpOptr->Operator)
{
stack[++top]=x;
lpOptr++;
}
else
switch ((lpOptr++)->Operator)
{
case '+'://求+
y1=stack[top--];
y2=stack[top--];
stack[++top]=y1+y2;
break;
case '-'://求-
y1=stack[top--];
y2=stack[top--];
stack[++top]=y2-y1;
break;
case '*'://求*
y1=stack[top--];
y2=stack[top--];
stack[++top]=y1*y2;
break;
case '/'://求/
y1=stack[top--];
y2=stack[top--];
stack[++top]=y2/y1;
break;
case '^'://求^
y1=stack[top--];
y2=stack[top--];
stack[++top]=pow(y2,y1);
break;
case 'A': //求sin(y1)
y1=stack[top--];
stack[++top]=sin(y1);
break;
case 'B'://求cos(y1)
y1=stack[top--];
stack[++top]=cos(y1);
break;
case 'C'://求exp(y1)
y1=stack[top--];
stack[++top]=exp(y1);
break;
case 'D'://求log(y1)
y1=stack[top--];
stack[++top]=log(y1);
break;
case 'E'://求log10(y1)
y1=stack[top--];
stack[++top]=log10(y1);
break;
case 'F'://求tan(y1)
y1=stack[top--];
stack[++top]=tan(y1);
break;
default:
break;
}
}
return stack[top];
}
void main()
{
char src[MAX_SIZE];
double d;
OPERATE postsrc[MAX_SIZE];
memset(src,0,MAX_SIZE);//初始化内存的某一块地址其地址的最大值为256最后返回src
printf("公式计算器--精确到小数点后六位\n输入任意表达式开始计算,输入quit结束程序\n常量 pi=3.14159266\n");
scanf("%s",src);
while(strcmp(src,"quit"))//输入字符串与"quit"比较,若相等则退出循环,否则继续处理表达式
{
_Proc(src);
SrcFunProc(src);
PostSrc(src,postsrc);
d=Calculate(postsrc,3.1415926);
printf("计算结果是:%f\n",d);
memset(src,0,MAX_SIZE);
scanf("%s",src);
}
}
③ C语言里有哪些注释方法
答:在用C语言编程时,常用的注释方式有如下几种:
(1)单行注释 //…
(2)多行注释 /*…*/
(3)条件编译注释 #if 0…#endif
拓展资料:
对于(1),注释只能显示在一行内,通常出现在一条语句的右边或者上方,对于注释符”//”,一个注释里只要有多余2个’/’都可以。
对于(2),”/*…*/”不能嵌套使用,正如”if…else”中的”else”总是和隔它最近的”if”配对一样,”/*”总是和离它最近的”*/”相配对。
针对(1)和(2)各自的缺陷,资深的程序员提出如(3)所示的注释,该注释的好处是能注释大块的程序,并且没有嵌套的限制,也就是说在”#if 0…#endif”的”…”处可以有”//”或”/*…*/”这样的注释。
④ c语言注释区别/与//的区别
C语言的注释有一种:
/*..............*/ 可以注释一行,也可以注释一段,/* 和 */ 之间为注释内容。
C++的注释有两种:
// 和 /*........*/ 两种。
(1).// 只能注释一行
(2)./*..............*/ 可以注释一行,也可以注释一段,/* 和 */ 之间的为注释内容。
注意:C语言的注释只有一种方式,即/*...*/。但是在C++的编译器里(羡带仿如:VC6.0编译器),对C语言程序的行辩注释可以用// 和 /*........*/ 两种。因为C++语言其兄纤实可以理解为是C语言的扩充!因此,在C++的编译器里可以把C语言理解为C++语言,自然可以使用两种注释了。
⑤ 给c语言加注释
)
在编写C语言源代码时,应该多使用注释,这样有助于对代码的理解。在C语言中有两种注释方式:
一种是以/*开始、以*/结束的块注释(block comment);
另一种是以//开始、以换行符结束的单行注释(line comment)。
可以使用/*和*/分隔符来标注一行内的注释,也可以标注多行的注释。例如,在下列的函数原型中,省略号的意思是 open() 函数有第三个参数,它是可选参数。注释解释了这个可选参数的用法:
int open( const char *name, int mode, … /* int permissions */ );
可以使用//插入整行的注释,或者将源代码写成两列分栏的格式,程序在左列,注释在右列:
const double pi = 3.1415926536; // pi是—个常量
在 C99 标准中,单行注释正式加入C语言,但是大部分编译器在 C99 之前就已经开始支持这种用法。有时候,其被称作“C++风格”的注释,但实际上,其源自于C的前身 BCPL。
在引号中,如果采用/*或//分隔一个字符常量或字符串字面量(string literal),它们都不会被视为注释的开始。例如,下面语句就没有注释:
printf("Comments in C begin with /* or //.\n" );
预处理器仅通过检查注释的结束符来检测注释中的字符,因此,不能嵌套块注释。然而,可以使用/*和*/注释包含单行注释的源代码:
/* 暂时注释掉这两行:
const double pi = 3.1415926536; // pi是一个常量
area = pi * r * r; // 计算面积
暂时注释到此 */
如果想要注释掉包含块注释的部分程序,可以使用条件预处理命令:
#if 0
const double pi = 3.1415926536; /* pi是一个常量 */
area = pi * r * r ; /* 计算面积 */
#endif
预处理器会把每个注释都替换成一个空格。因此,min/*max*/Value变成两个标记min Value。
所有教程
⑥ 请求C语言注解解释,谢谢
#include<stdio.h>
void change(int*s1,int*s2) //定义一个返回为空的子函数,参数是指向int型的两个指针变量
{
int t; //定义整型变量t
t=*s1; //将指针s1指向的数据赋值给t
*s1=*s2; //将s2指向的值赋给s1指向的值
*s2=t; //将t的值赋给s2指向的值
}
int main()
{
int x,y;
int *p1,*p2; //定义两个指向整型数据的指针
scanf("%d%d",&x,&y); //输入两个数据分别放在x以及y的地址中,也就是x的值和y的值
p1=&x;p2=&y; //使得裂芹p1指向x的地址,p2指向y的地址
printf("x=%d,y=%d\n",x,y); 输出x和y的值
change(p1,p2); //调用子函数进行改源纤操作(其实就是换下值,)给的实参是x和y的地址,即指针
printf("x=%d,y=%d\n",x,y); 输出x和y的核仿值(此时两者之间的值将开始的值相互换了一下)
}
⑦ C语言 添加注解
这么明显橡消的代码,返如察还用添加什么注解。。
作业做到这个程度就可漏茄以了,为了没有trick的代码加注释是多余。
⑧ c语言的注解,和运行情况详解请教
#include <stdio.h>//包含标准输入输出头文件
int main()//应用程序入口
{
float radius =0.0f;//定义浮点类型的半径变量,float就是有小数点的数值类型
float diameter=0.0f;//定义浮点类型的直径变量
float circumference =0.0fl;//定义浮点类型的周野颤长变量
float area=0.0f;//定义浮点类型的面只变量颂正败
faoat pi=3.14159265f;//定义圆周率,应该前面加上const关键字定义成常量并大写PI
printf("Iuput the diameter of the table:");//在计算机屏幕显示Input the diameter of the table 字符
scanf("%f",&diamter);//获取键盘的输入的直径
radius=diameter/2.0f;//将直径除2赋值给半径,就是计算半径
circumference =2.0f*pi*radius;将2乘以PI乘以半径赋值给周长,就是计算周长
area = pi=radius*radius;//此次有毛病,面只应等于PI*radius*radius;就是计算面只
printf("\n the circumference is %.2f",circumference);//换行输出显示the circumference is 计算后的周长并只保留两位小数
printf("\n the area is%.2f\n",area);//换行输出显示 the area is计算后的面只保留两位小数清滚
return 0;//结束程序
}
⑨ c语言注释是什么
注释是语句这句话不全面,应该说注释是注释语句。
1、可以使用/*和*/分隔符来标注一行内的注释,也可以标注多行的注释。例如,在下列的函数原型中,省略号的意思是 open() 函数有第三个参数,它是可选参数。注释解释了这个可选参数的用法:
int open( const char *name, int mode, … /* int permissions */ )。
2、可以使用//插入整行的注释,或者将源代码写成两列分栏的格式,程序在左列,注释在右列:
const double pi = 3.1415926536// pi是—个常量。
C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
⑩ C语言的注释 删除C语言中的注释
少年,作业就自己写,还上网络知道让别人免费给你写作业?给你点提示吧,重点是找出注释,也就是找出字符串数组中注释//或者/*和*/的数组下标,其他就是遍历查找的事情,自己写吧