Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的结构问题_C_Gcc - Fatal编程技术网

C语言中的结构问题

C语言中的结构问题,c,gcc,C,Gcc,任务:创建工作人员数据库。该程序还应通过以下方式输出工作人员信息: 列出并计算所有工人的平均工资。当我试图编译这段代码时 #include <stdio.h> #include <stdlib.h> #include <string.h> struct worker { char name[10]; int salary; }; int main (void); struct worker p1 = {"koko", 3400};

任务:创建工作人员数据库。该程序还应通过以下方式输出工作人员信息: 列出并计算所有工人的平均工资。当我试图编译这段代码时

#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);
}

如果能够解决此问题,我将不胜感激。

您在定义main()时出现语法错误。它需要一个大括号,而不是分号。

删除
从下一行的末尾
int main(void)并插入一个
{

int main(void);
更改为:

int main (void) {

您可以使用
intmain(void);
声明原型,但必须打开括号才能开始函数的实际内容。

结合其他人的提示:

#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;
}
#包括
#包括
#包括
结构工人{
字符名[10];
国际工资;
};
int main(int argc,const char*argv[]
{
结构工人p1={“koko”,3400};
printf(“名称=%s,薪资=%d\n”,p1.name,p1.salary);
返回0;
}
注意如何

  • p1.姓名
    p1.工资
    引用
    p1
    中的字段(类型为
    工人
  • main
    的声明已修复

    • 你做了很多错事

      因为这是家庭作业,你应该学习一些东西,所以试着做以下事情:

      • 从一个程序开始,该程序只是包含文件的骨架和一个空的main函数。这样做会表明您编写的
        int main(void);
        错误。它应该是
        int main(){
      • 从一个printf函数调用开始,该函数调用只输出一个您键入的数字。这应该表明
        printf
        参数是错误的。为什么您认为变量应该在字符串双引号内?而且,一旦参数位于正确的位置,为什么您认为printf具有两个转换(%s和%d)是否可以使用四个参数
      总而言之:当你的新代码出现语法错误时,备份并撤消你的更改,直到你有了可以编译的代码。然后写一些新的小代码,这样你就可以准确地看到哪里出了问题


      另外,我建议使用最大级别的警告选项进行编译。这可能会告诉您printf语句是错误的。我相信这是Microsoft Visual Studio在调试模式下的默认值。对于Linux或BSD上的GCC,您可以将
      -Wall-W
      添加到GCC命令中。

      如果我错了,请原谅,但看起来像是一个错误源我通常参加考试。 放错的分号不是程序中唯一的错误


      如果我错了,请随时纠正。

      格式化代码很好。代码不仅仅是供计算机阅读的
      #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;
      }