① 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語言中的注釋
少年,作業就自己寫,還上網路知道讓別人免費給你寫作業?給你點提示吧,重點是找出注釋,也就是找出字元串數組中注釋//或者/*和*/的數組下標,其他就是遍歷查找的事情,自己寫吧