任务:创建工人数据库。该计划还应该通过输出工人的信息 姓名和计算所有工人的平均工资。当我尝试编译此代码时
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct worker {
char name[10];
int salary;
};
int main (void);
struct worker p1 = {"koko", 3400};
printf ("name=%s,salary=%d,p1,name,p1,salary");
return(0);
}
我得到了
./dz2.c:11:9: error: expected declaration specifiers or «...» before string constant
./dz2.c:12:1: error: expected identifier or «(» before «return»
./dz2.c:13:1: error: expected identifier or «(» before «}» token
我很感激解决这个问题。
答案 0 :(得分:2)
从以下行;
的末尾删除int main(void);
,然后插入{
。
答案 1 :(得分:2)
将int main (void);
更改为:
int main (void) {
使用int main (void);
声明原型,但必须打开括号才能启动函数的实际内容。
答案 2 :(得分:2)
你做了很多错事。
由于这是家庭作业,你应该学习东西,试试这些:
int main(void);
错误。它应该是int main() {
。printf
个参数。为什么你认为变量应该在字符串双引号内?一旦你确实在正确的位置有参数,为什么你认为有两次转换的printf(%s和%d)将使用四个参数?总结:当您使用新代码获得语法错误时,请备份并撤消更改,直到您拥有编译的代码。然后编写一些新的代码,以便您可以确切地看到出错的地方。
另外,我建议使用最高级别的警告选项进行编译。那会告诉你printf语句错了。我相信这是Microsoft Visual Studio在调试模式下的默认设置。对于Linux或BSD上的GCC,您可以将-Wall -W
添加到gcc命令。
答案 3 :(得分:1)
定义main()时出现语法错误。它需要一个开口大括号,而不是分号。
答案 4 :(得分:1)
结合其他人的提示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct worker {
char name[10];
int salary;
};
int main(int argc, const char *argv[])
{
struct worker p1 = {"koko", 3400};
printf ("name=%s,salary=%d\n",p1.name,p1.salary);
return 0;
}
注意
p1.name
和p1.salary
引用p1
内的字段(类型为worker
)main
的声明已修复答案 5 :(得分:0)
如果我错了,请原谅我,但看起来像你通常参加考试的有缺陷的来源。 错误的分号不是程序中唯一的错误。
如果我错了,请随意纠正我。