Ⅰ 请教一个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
Ⅸ 编译原理和算法与数据结构那门课比较重要
坦白的讲都很重要,但这等于没有回答你的问题,我理解你是想问学习的先后。其实算法和数据结构是计算机编程技术的精髓,偏重理论和抽象,是重中之重;一旦你进入计算机编程领域时,编译原理是你实现想法的重要工具,是知其然,而后知其所以然,让你知道机器是如何实现你的想法的,方便你更好的利用机器,让你的想法有可行性。