導航:首頁 > 源碼編譯 > 編譯結構法編譯指導法

編譯結構法編譯指導法

發布時間:2022-04-28 04:30:32

Ⅰ 請教一個C語言結構體問題:編譯出現很多錯誤,但是把文件名改成.cpp就能編譯通過了,這是什麼問題啊

樓上說的不全對。

C語言里邊,使用struct來定義結構體,要有struct這個關鍵字編譯器才認得是個結構體。
所以代碼修改如下就能運行了。
#include "stdio.h"
#include "string.h"
#define format "|%-10s |%8d| \n"
#define data p->name,p->jbgz

struct rsda
{
char name[10];
int jbgz;
}tp[]={"liming",2500,"wanggang",3000,"zhanghan",2800,"liuyang",3200,"feng",4300};

void printdata(struct rsda pp)
{
struct rsda *p;
p=&pp;
printf(format,data);
}
void main()
{
printdata(tp[0]);
}
----------------------------
typedef struct rsda
{
char name[10];
int jbgz;
}rsda;
是重新定義了一個新的類型叫rsda,所以下面也就不會報錯了。

Ⅱ C語言數據結構程序編譯不能通過,求高手指點

兄弟,希望你能懂,明白!ok,祝學習順利
#include <stdio.h>
#define n 30
typedef struct
{
char name[8];
int score;
}student;//我用了student這個結構體類型名

void main()
{
int num,i,j,max;//你忘記了申明變數max,score變數不需要
student temp,stu[n];//這里申明結構體
printf("\nplease input score:\n");
for(i=0;i<n;i++)
{
printf ("name:");
scanf ("%s",stu[i].name);//這里不能再加&
scanf ("%d",&stu[i].score);
}
num=1;
for (i=0; i<n; i++)
{
max=i;
for (j=i+1; j<n; j++)
if (stu[j].score>stu[max].score)
max=j;
if (max!=i)
{ temp = stu[max];
stu[max]=stu[i];
stu[i]= temp;
}
if ((i>0)&&(stu[i].score<stu[i-1].score))
num=num+1;
printf("%4d%s%4d", num,stu[i].name, stu[i].score);
}
}

Ⅲ 數據結構編譯通過,但運行不出來

把中文輸入法關閉!(ctrl+blank)
然後再輸入數據,符號都要是英文的才可以!

Ⅳ 編譯器的結構

沒聽過有數據結構的編譯器

數據結構只是對數據的演算法分析等....一般市面上的數據結構的書是以c/c++語言來表示的...

你去下載vc或tc就可以了..

Ⅳ 關於數據結構用c語言編譯的問題。

PN *polyAdd(PN *ha,PN *hb)
{
int c,e;
PN *pa=ha->next,*pb=hb->next,*hc,*pc;
hc=pc=new PN;
while(pa||pb) //**************************修改處
{
if(pa&&(pb==NULL||pa->e<pb->e))
{
c=pa->c;
e=pa->e;
pa=pa->next;
}
else if(pb&&(pa==NULL||pa->e>pb->e))
{
c=pb->c;
e=pb->e;
pb=pb->next;
}
else
{
c=pa->c+pb->c;
e=pa->e;
pa=pa->next;
pb=pb->next;
}
if(c)
{
pc->next=new PN;
pc=pc->next;
pc->c=c;
pc->e=e;
}
}
pc->next=NULL;
return hc;
}

PN *createPoly()
{
int n,e,c;
PN *head,*p;
scanf("%d",&n);
head=p=new PN;
while(n--)
{
p->next=new PN;
p=p->next;
scanf("%d%d",&p->c,&p->e);
}
p->next = NULL; //**************************修改處
return head;
}

Ⅵ 急求!!!用C語言編寫一個編譯原理實驗的簡單優先分析法程序

編譯原理IF條件語句的翻譯程序設計—簡單優先法、輸出四元式通過設計、編制、調試一個條件語句的語法及語義分析程序,加深對語法及語義分析原理的理解,並實現詞法分析程序對單詞序列的詞法檢查和分析。具體做到以下幾點:①對輸入語句進行詞法分析。將輸入的字元串進行掃描和分解,識別出一個個合法的單詞。單詞種類包括:關鍵字,標識符,運算符,常數和界限符②進行語法分析。編寫條件語句的相應文法,按照語法分析方法中的簡單優先分析法為文法設計簡單優先表,對詞法分析得到的單詞序列進行語法分析,以判別輸入的語句是否屬於該文法的條件語句。③語法制導翻譯。設計中間代碼(四元式)序列的結構及屬性文法,運用語法制導翻譯,在進行語法分析的同時,執行相應的語義規則描述的動作,從而實現語義處理,生成中間代碼以四元式的形式輸出。④錯誤提示。對不同的錯誤給出簡略描述,並終止程序的繼續執行。下載地址如下,有你要的東西!pile.rar

Ⅶ 編譯原理算符優先分析法中構造分析表的時候,井號和其他符號的優先順序怎麼判斷在線等。

首先,算符優先分析法只考慮終結符之間的優先關系。
其次,#和其他終結符之間的優先關系按如下方法來確定:
1)假設文法的開始符為E,則增加一個產生式E『-> #E#, E'不在原文法中出現
2)#<FIRSTVT(E) ; LASTVT(E)>#

Ⅷ 編譯原理中文法變換的特殊方法有哪些

說明方法
常見的說明方法
常見的說明方法有舉事例、分類別、列數據、作比較、畫圖表、下定義、作詮釋、打比方、摹狀貌、引資料等10種。寫說明文要根據說明對象的特點及寫作目的,選用最佳方法。下面分別加以說明。

(1)舉例子。舉出實際事例來說明事物,使所要說明的事物具體化,以便讀者理解,這種說明方法叫舉例法。如:

一般人總以為,年齡稍大,記憶能力就一定要差,其實不然,請看實驗結果:國際語言學會曾對9至18歲的青年與35歲以上的成年人學習世界語作過一個比較,發現前者就不如後者的記憶力好。這是因為成年人的知識、經驗比較豐富,容易在已有的知識基礎上,建立廣泛的聯系。這種聯系,心理學上稱為「聯想」。人的記憶就是以聯想為基礎的,知識經驗越豐富,越容易建立聯想,記憶力就會相應提高。馬克思五十多歲時開始學俄文,六個月後,他就能津津有味地閱讀著名詩人與作家普希金、果戈里和謝德林等人的原文著作了。這是由於語言知識豐富,能夠通曉很多現代和古代的語言的緣故。

這段文章要說明的是:年齡稍大,記憶力不一定就差。為了說明這一點,作者先提供了實驗結果,又分析了原因。到此為止,未嘗不可,但不夠具體,也缺乏說服力,於是,又舉出了一個實例:馬克思在五十多歲的時候,只用六個月時間便精通了俄語。這樣一來,內容具體了,說服力增強了。

說明文中的舉事例的說明方法和議論文中的例證法,都可以起到使內容具體、加強說服力的作用。但二者又有區別。議論文中的事例,是用來證明觀點的,說明文的事例,是用來介紹知識的。

運用舉事例的說明方法說明事物或事理,一要注意例子的代表性,二要注意例子的適量性。

(2)分類別。將被說明的對象,按照一定的標准劃分成不同的類別,一類一類地加以說明,這種說明方法,叫分類別。

分類別是將復雜的事物說清楚的重要方法。

運用分類別方法要注意分類的標准,一次分類只能用同一個標准,以免產生重疊交叉的現象。例如:「圖書館的藏書有中國的、古典的、外國的、科技的、文學的、現代的以及政治經濟方面的等。」這里用了不只一個標准,所以表達不清。正確的說法應該是:

圖書館的藏書,按國別分,有中國的、外國的;按時代分,有古典的、現代的;按性質分,有科技的、文學的以及政治經濟方面的等。

這樣,每次分類只用一個標准,就眉目清楚了。

有的事物的特徵、本質需要分成幾點或幾個方面來說,也屬於分類別。

注意,運用分類別方法,所列舉的種類不能有遺漏。

(3)列數據。為了使所要說明的事物具體化,還可以採用列數據的方法,以便讀者理解。需要注意的是,引用的數字,一定要准確無誤,不準確的數字絕對不能用,即使是估計的數字,也要有可靠的根據,並力求近似。

(4)作比較。說明某些抽象的或者是人們比較陌生的事物,可以用具體的或者大家已經熟悉的事物和它比較,使讀者通過比較得到具體而鮮明的印象。事物的特徵也往往在比較中顯現出來。

在作比較的時候,可以是同類相比,也可以是異類相比,可以對事物進行「橫比」,也可以對事物進行「縱比」。

(5)畫圖表。為了把復雜的事物說清楚,還可以採用圖表法,來彌補單用文字表達的缺欠,對有些事物解說更直接、更具體。

(6)下定義。用簡明的語言對某一概念的本質特徵作規定性的說明叫下定義。下定義能准確揭示事物的本質,是科技說明文常用的方法。

下定義的時候,可以根據說明的目的需要,從不同的角度考慮。有的著重說明特性,如關於「人」的定義;有的著重說明作用,如關於「肥料」的定義;有的既說明特性又說明作用,如關於「統籌方法」和「應用科學」的定義。

①人是能製造工具並使用工具進行勞動的高級動物。

②肥料是能供給養分使植物生長的物質。

③統籌方法,是一種安排工作進程的數學方法。

④工程技術的科學叫做應用科學,它是應用自然科學的基礎理論來解決生產實踐中出現的問題的學問。

無論從什麼角度考慮,無論採用什麼方式,只要是下定義,就必須揭示事物的本質,只有這樣的定義才是科學的。比如,有人說:「人是兩足直立的動物。」這個定義就是不科學的,因為它沒能揭示事物的本質。「人是能製造工具並使用工具進行勞動的高級動物。」這才是科學的定義,因為它揭示了人的本質。

(7)作詮釋。從一個側面,就事物的某一個特點做些解釋,這種方法叫詮釋法。

定義法和詮釋法常採用「某某是什麼」的語言形式。形式相同,如何區分呢?一般來說,「是」字兩邊的話能夠互換,就是定義;如果不能互換,就是詮釋。

例如,「人是能製造工具並使用工具進行勞動的高級動物」這句話,改成「能製造工具並使用工具進行勞動的高級動物是人」,意思不變。「雪是在雲中形成的一種固態降水物」這句話,如果改為「雲中形成的固態降水物是雪」就不成。由此可以辨別,前一句是定義說明,後一句是詮釋說明。

(8)打比方。利用兩種不同事物之間的相似之處作比較,以突出事物的性狀特點,增強說明的形象性和生動性的說明方法叫做打比方。

說明文中的打比方的說明方法,同修辭格上的比喻是一致的。不同的是,比喻修辭有明喻、暗喻、和借喻,而說明多用明喻和暗喻,借喻則不宜使用。

(9)摹狀貌。為了使被說明對象更形象、具體,可以進行狀貌摹寫,這種說明方法叫摹狀貌。

(10)引資料。為了使說明的內容更充實具體,可以引資料說明。引資料的范圍很廣,可以是經典著作,名家名言,公式定律,典故諺語等。

一篇說明文單用一種說明方法很少,往往綜合運用多種說明方法。採用什麼說明方法,一方面服從內容的需要,另一方面作者有選擇的自由。是採用一種說明方法,還是採用多種說明方法,是採用這種說明方法,還是那種說明方法,可以靈活,不是一成不變的。
參考資料:http://ke..com/view/118461.html

Ⅸ 編譯原理和演算法與數據結構那門課比較重要

坦白的講都很重要,但這等於沒有回答你的問題,我理解你是想問學習的先後。其實演算法和數據結構是計算機編程技術的精髓,偏重理論和抽象,是重中之重;一旦你進入計算機編程領域時,編譯原理是你實現想法的重要工具,是知其然,而後知其所以然,讓你知道機器是如何實現你的想法的,方便你更好的利用機器,讓你的想法有可行性。

閱讀全文

與編譯結構法編譯指導法相關的資料

熱點內容
安卓平板android如何降級 瀏覽:124
蘋果怎麼下載整理文字軟體app 瀏覽:130
怎麼刪除一個app下載任務 瀏覽:713
python執行bat命令 瀏覽:471
什麼吉他調音器app最好 瀏覽:33
php程序員招聘試題 瀏覽:14
程序員升職記第九關最優解 瀏覽:317
三星安卓11怎麼訪問data文件夾 瀏覽:817
華三伺服器怎麼設置開機自啟 瀏覽:711
釘郵登錄伺服器地址 瀏覽:644
起源編譯器適配第二款應用 瀏覽:433
cad弄斷線條命令 瀏覽:463
怎麼恢復手機app的安裝包 瀏覽:300
idea重啟項目不編譯 瀏覽:495
程序員那麼可愛演員表陸漓媽媽 瀏覽:127
linuxgadget驅動 瀏覽:594
華三調用acl的命令 瀏覽:9
資金流pdf 瀏覽:931
金融結演算法補充條款 瀏覽:291
什麼叫伺服器怎麼連接 瀏覽:521