㈠ c語言這個未聲明的標識符,該怎麼改
system函數在stdlib.h中。
函數聲明為
int system(char *command);
功能是執行一個當前操作系統的 shell命令,windows下調用就如同在ms-dos窗口中執行一項command中存儲的命令。
比如system("dir");
會顯示當前目錄下的文件信息。
最常用的system指令是system("pause"); 作用是使命令行窗口暫停,出現一行"Press any key to continue"的文字,一般用於主函數結尾以保存現場供調試/查看。
getch():
所在頭文件:conio.h
函數用途:從控制台讀取一個字元,但不顯示在屏幕上
函數原型:int getch(void)
返回值:讀取的字元
例如:
char ch;或int ch;
getch();或ch=getch();
用getch();會等待你按下任意鍵,再繼續執行下面的語句;
用ch=getch();會等待你按下任意鍵之後,把該鍵字元所對應的ASCII碼賦給ch,再執行下面的語句。
易錯點
1.所在頭文件是conio.h。而不是stdio.h。
2.在使用之前要調用initscr(),結束時要調用endwin()。否則會出現不輸入字元這個函數
也會返回的情況。
3.在不同平台,輸入回車,getch()將返回不同數值,而getchar()統一返回10(即\n)
1)windows平台下ENTER鍵會產生兩個轉義字元 \r\n,因此getch返回13(\r)。
2)unix、 linux系統中ENTER鍵只產生 \n ,因此getch返回10(\n)。
3)MAC OS中ENTER鍵將產生 \r ,因此getch返回13(\r)。
getch();並非標准C中的函數,不存在C語言中。所以在使用的時候要注意程序的可移植性。國內C語言新手常常使用getch();來暫停程序且不知道此函數來源,建議使用getchar()或者使用<stdlib.h>頭文件中的system("PAUSE")調用系統命令暫停;(如果情況允許)代替此功能或更換一款編譯器。
在調用自己不熟悉的函數時,請查閱c語言手冊。把函數所在的頭文件包含到程序中。
㈡ C語言刪除多餘的括弧
C語言刪除多餘的括弧
 懸賞分:20 - 離問題結束還有 16 天 21 小時
輸入一串算式(只有加減法),僅僅要求刪去其中多餘的括弧再輸出,計算或合並同類項之類的事情不必考慮。 
例如 
輸入 
(a-b+c)-(a+(b-c))-(c-(d-e))↵ 
輸出 
a-b+c-(a+b-c)-(c-(d-e))↵ 
要在TC2.0下試驗准確的程序!
問題補充:這個程序還是有缺陷的,比如輸入(((a)+b))的時候結果就不對! 
的確還是有些漏洞,比如a-((((b))))結果還是不對!
提問者: 匿名
         我來回答: 
 回答即可得2分,回答被採納則獲得懸賞分以及獎勵20分 
如果需要圖片來說明回答內容,可以上傳圖片 
參考資料:   
   匿名回答     積分規則  
回答    共 1 條
#include"stdio.h" 
void main() 
{char a[100]={0}; 
int i,j,z,m=0,n=0,k=0,b[100]={0}; 
gets(a); 
if(a[0]=='(') 
{j=1; 
b[0]=1; 
for(;a[j]=='(';k++,j++) b[j]=1; 
if(a[j]=='+'||a[j]=='-') goto next1; 
z=1; 
while(n!=m+k+1) 
{if(a[j]=='(') m++; 
if(a[j]==')') 
{ 
n++; 
if(n==m+z) 
b[j]=1,z++; 
} 
j++; 
} 
} 
i=0; 
next1: for(;a[i];i++) 
{ 
if(a[i]=='+'&&a[i+1]=='(') 
{j=i+2; 
b[i+1]=1; 
for(k=0;a[j]=='(';k++,j++) b[j]=1; 
if(a[j]=='+'||a[j]=='-') {i=j;for(;k+1>0;k--) b[j-k-1]=0;goto next1;} 
m=0;n=0; 
z=1; 
while(n!=m+k+1) 
{if(a[j]=='(') m++; 
if(a[j]==')') 
{ 
n++; 
if(n==m+z) 
b[j]=1,z++; 
} 
j++; 
} 
} 
} 
for(i=0;a[i];i++) 
if(a[i]=='-'&&a[i+1]=='(') 
{ 
for(k=0;a[i+2]=='(';i++,k++); 
if(a[i+3]==')') 
{for(j=1;j<k+2;j++) 
{b[i+2-j]=1;b[i+2+j]=1;} 
} 
} 
for(i=0;a[i];i++) 
if(b[i]==0) 
printf("%c",a[i]); 
} 
全自己編的哦,TC2.0里運行過,是對的,有什麼不懂再問我。 
改了,去掉了你說的漏洞,但a+(-b+c)的情況沒寫進去,其餘問題目前還沒發現。 
又改了,去掉了a+(-b+c)的漏洞。
