㈠ 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)的漏洞。