user-0 提问: 关于结构体   请大家指导

回复:
user: user-1
content: 引用 21 楼 sholber 的回复:[quote=引用 19 楼 my_live_123 的回复:] [quote=引用 15 楼 sholber 的回复:] [quote=引用 14 楼 my_live_123 的回复:] 结构体后面没有分号结束！记住，结构体声明一种数据类型，它是语句！要用分号结尾 声明是声明，语句是语句，结构体声明是数据类型，而且又是语句，真是荒谬之极！[/quote] 以分号结尾的一字符串怎么称呼？我说它是语句，你不赞同，你来说称呼它什么？[/quote]  C中的语句分类： statement:      labeled-statement      compound-statement      expression-statement      selection-statement      iteration-statement      jump-statement[/quote] 从C文法上来看，Phrase structure grammar下分支：Expressions，Declarations，Statements，External definitions。结构体文法在Declarations范畴。如果从文法细节扣，我的陈述“结构体是语句”是错的，我承认。但是放到自然语言的角度，我认为说的过去。比如声明语句，表达式语句，递归语句等等语言性描述，我不觉的是什么了不起或者致命的错误！或许你只站在C规则上说事，那我就无话可说喽！

user: user-2
content: 引用 8 楼 zhao4zhong1 的回复:偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译，直到定位到具体语法出错的位置。” 的方法解决的。 正解！

user: user-3
content: 引用 19 楼 my_live_123 的回复:[quote=引用 15 楼 sholber 的回复:] [quote=引用 14 楼 my_live_123 的回复:] 结构体后面没有分号结束！记住，结构体声明一种数据类型，它是语句！要用分号结尾 声明是声明，语句是语句，结构体声明是数据类型，而且又是语句，真是荒谬之极！[/quote] 以分号结尾的一字符串怎么称呼？我说它是语句，你不赞同，你来说称呼它什么？[/quote]  C中的语句分类： statement:      labeled-statement      compound-statement      expression-statement      selection-statement      iteration-statement      jump-statement

user: user-3
content: 引用 19 楼 my_live_123 的回复:[quote=引用 15 楼 sholber 的回复:] [quote=引用 14 楼 my_live_123 的回复:] 结构体后面没有分号结束！记住，结构体声明一种数据类型，它是语句！要用分号结尾 声明是声明，语句是语句，结构体声明是数据类型，而且又是语句，真是荒谬之极！[/quote] 以分号结尾的一字符串怎么称呼？我说它是语句，你不赞同，你来说称呼它什么？[/quote]  如果以分号结尾的字符串是独立存在的，如： "my_live 123"; 则它是表达式语句。表达式语句是一个表达式，跟着一个分号。

user: user-1
content: 引用 15 楼 sholber 的回复:[quote=引用 14 楼 my_live_123 的回复:] 结构体后面没有分号结束！记住，结构体声明一种数据类型，它是语句！要用分号结尾 声明是声明，语句是语句，结构体声明是数据类型，而且又是语句，真是荒谬之极！[/quote] 以分号结尾的一字符串怎么称呼？我说它是语句，你不赞同，你来说称呼它什么？

user: user-4
content: #include<stdio.h> struct student { char name[20]; int age; float score[5],ave;  } ;//注意这里有一个";" int main() { struct student stu; stu.ave=0;     int i=0; printf("input name,age: \n"); scanf("%s %d",stu.name,&stu.age); printf("inout score :\n"); for(i=0;i<5;i++) { scanf("%f",&stu.score[i]); stu.ave=stu.ave+stu.score[i]/5.0; } printf("%s %d\n",stu.name,stu.age); printf("the average is :\n"); printf("%f\n",stu.ave);  }楼主编程的时候注意看编译器给你的错误提示啊，不然一辈子都不知道哪里错了

user: user-5
content: 有的时候，错误提示不一定会指向真正的错误。若只是纠正语法错误，那么可能有好几种纠正方式，也就是说对错误有好几种解释方法，所以，看到错误提示，要是在他所指位置看不到错误，那你就要找找前面的地方是否有错误。

user: user-6
content: 可以点击错误信息，会跳到错误行的

user: user-3
content: 引用 14 楼 my_live_123 的回复:结构体后面没有分号结束！记住，结构体声明一种数据类型，它是语句！要用分号结尾 声明是声明，语句是语句，结构体声明是数据类型，而且又是语句，真是荒谬之极！

user: user-1
content: 结构体后面没有分号结束！记住，结构体声明一种数据类型，它是语句！要用分号结尾

user: user-3
content: 引用 8 楼 zhao4zhong1 的回复:偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译，直到定位到具体语法出错的位置。” 的方法解决的。  用CLANG，语法加亮，定位比较准确，很适合你的哟。

user: user-3
content: 引用 7 楼 spaceman10 的回复:或者把main的返回值改为void  这是在往歪路上引。

user: user-3
content: 引用 6 楼 xunfeng0862 的回复:楼主应该是个新手，碰到问题先看报的是什么错，报错的英文不懂直接翻译下就明白了。 main函数要有返回值，四楼最后要加上一个return 0;  当main函数的执行流到达组成函数体的}时，等效于return 0; 就算是老的编译器，这也不算什么大毛病。

user: user-7
content: struct student { char name[20]; int age; float score[5],ave;  };//结构体定义和函数体定义不同，边界除了用{}区分，结尾}后面还要加“；”号

user: user-8
content: 结构体定义后大括号外面要有分号的。

user: user-2
content: 偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译，直到定位到具体语法出错的位置。” 的方法解决的。

user: user-9
content: 或者把main的返回值改为void

user: user-10
content: 楼主应该是个新手，碰到问题先看报的是什么错，报错的英文不懂直接翻译下就明白了。 main函数要有返回值，四楼最后要加上一个return 0;

user: user-11
content: 注意加分号....

user: user-5
content: struct student  {  char name[20];  int age;  float score[5],ave;   } ;