鱼C论坛

 找回密码
 立即注册
查看: 1375|回复: 4

[已解决]不懂就问

[复制链接]
发表于 2023-3-17 19:33:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>
  2. #include<string.h>
  3. #define N 3
  4. struct student
  5. {
  6.         int name[15];
  7.         int num[15];
  8.         int pleace[15];
  9.         int id[15];
  10.         int age;
  11.         int address[200];

  12. }stu[N]

  13.         void input(struct student stu[]);
  14.         void print(struct student stu[]);
  15.         void search(struct student stu[],int name[]);
  16.         void main()
  17.         {
  18.         int name[15];
  19.         input(stu);
  20.         print(stu);
  21.         printf("\n请输入想要查找的学生姓名: ");
  22.         scanf("%d", name);
  23.         search(stu, name);
  24.         }

  25.         void input(struct student stu[]);
  26.         {
  27.                 for(int i=0;i<N;i++);
  28.                 {
  29.                 printf("输入第%d个学生的信息\n",&i+1);
  30.                 printf("姓名: ");
  31.                 scanf("%d", &stu[i].name);
  32.                 printf("学号: ");
  33.                 scanf("%d", &stu[i].num);
  34.                 printf("籍贯: ");
  35.                 scanf("%d", &stu[i].place);
  36.                 printf("身份证号: ");
  37.                 scanf("%d", &stu[i].id);
  38.                 printf("年龄: ");
  39.                 scanf("%d", &stu[i].age);
  40.                 printf("家庭住址: ");
  41.                 }
  42.         }
  43.         void print(struct student stu[]);
  44.         {
  45.                 printf("姓名学号 籍贯 身份证号 年龄地址 \n");
  46.                 for(int i=0; i<N; i++)
  47.                 printf("%d%d%d%d%d%d\n", &stu[i].name,&stu[i].num,& stu[i].place, &stu[i].id, &stu[i].age, &stu[i].address);
  48.         }
  49.         void search(struct student stu[], char name[]);
  50.         {
  51.         int flag=0;
  52.         for(int i=0; i<N; i++)
  53.         if(strcmp(stu[i].name, name)==0)
  54.                 {
  55.                 printf("%d%d%d%d%d%d\n", &stu[i].name,&stu[i].num,& stu[i].place, &stu[i].id, &stu[i].age, &stu[i].address);
  56.                 flag = 1;
  57.                 }
  58.         if(flag == 0)
  59.         printf("没有该学生的信息!\n");
  60.         }
复制代码




错误如下:1、C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(15) : error C2054: expected '(' to follow 'stu'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(15) : error C2085: 'input' : not in formal parameter list
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(16) : error C2085: 'print' : not in formal parameter list
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(17) : error C2085: 'search' : not in formal parameter list
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(18) : error C2085: 'main' : not in formal parameter list
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(29) : error C2449: found '{' at file scope (missing function header?)
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(45) : error C2059: syntax error : '}'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(47) : error C2449: found '{' at file scope (missing function header?)
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(51) : error C2059: syntax error : '}'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(53) : error C2449: found '{' at file scope (missing function header?)
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\2\3.c(63) : error C2059: syntax error : '}'
最佳答案
2023-3-17 19:44:33
你的代码存在一些语法错误,以下是修改后的代码:

  1. #include<stdio.h>
  2. #include<string.h>
  3. #define N 3
  4. struct student
  5. {
  6.     char name[15];
  7.     char num[15];
  8.     char place[15];
  9.     char id[15];
  10.     int age;
  11.     char address[200];
  12. }stu[N];

  13. void input(struct student stu[]);
  14. void print(struct student stu[]);
  15. void search(struct student stu[], char name[]);
  16. void main()
  17. {
  18.     char name[15];
  19.     input(stu);
  20.     print(stu);
  21.     printf("\n请输入想要查找的学生姓名: ");
  22.     scanf("%s", name);
  23.     search(stu, name);
  24. }

  25. void input(struct student stu[])
  26. {
  27.     for(int i=0;i<N;i++)
  28.     {
  29.         printf("输入第%d个学生的信息\n",i+1);
  30.         printf("姓名: ");
  31.         scanf("%s", stu[i].name);
  32.         printf("学号: ");
  33.         scanf("%s", stu[i].num);
  34.         printf("籍贯: ");
  35.         scanf("%s", stu[i].place);
  36.         printf("身份证号: ");
  37.         scanf("%s", stu[i].id);
  38.         printf("年龄: ");
  39.         scanf("%d", &stu[i].age);
  40.         printf("家庭住址: ");
  41.         scanf("%s", stu[i].address);
  42.     }
  43. }
  44. void print(struct student stu[])
  45. {
  46.     printf("姓名学号 籍贯 身份证号 年龄地址 \n");
  47.     for(int i=0; i<N; i++)
  48.         printf("%s %s %s %s %d %s\n", stu[i].name, stu[i].num, stu[i].place, stu[i].id, stu[i].age, stu[i].address);
  49. }
  50. void search(struct student stu[], char name[])
  51. {
  52.     int flag=0;
  53.     for(int i=0; i<N; i++)
  54.         if(strcmp(stu[i].name, name)==0)
  55.         {
  56.             printf("%s %s %s %s %d %s\n", stu[i].name, stu[i].num, stu[i].place, stu[i].id, stu[i].age, stu[i].address);
  57.             flag = 1;
  58.         }
  59.     if(flag == 0)
  60.         printf("没有该学生的信息!\n");
  61. }
复制代码


修改点如下:

1、结构体内的 name, num, place, id 和 address 应使用 char 类型而非 int 类型。
2、结构体 stu[N] 后面应该有一个分号
3、去掉了多余的分号和花括号。
4、使用 %s 而非 %d 读取字符串。
5、用 scanf("%s", name); 而非 scanf("%d", name); 读取姓名。
6、在 input 函数中,将 &i+1 修改为 i+1。

注意:void main() 不是标准 C 语言的写法,请使用 int main() 并在程序结束前返回 0。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-17 19:43:44 | 显示全部楼层
这不是Python……"input???print???"
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-17 19:44:33 | 显示全部楼层    本楼为最佳答案   
你的代码存在一些语法错误,以下是修改后的代码:

  1. #include<stdio.h>
  2. #include<string.h>
  3. #define N 3
  4. struct student
  5. {
  6.     char name[15];
  7.     char num[15];
  8.     char place[15];
  9.     char id[15];
  10.     int age;
  11.     char address[200];
  12. }stu[N];

  13. void input(struct student stu[]);
  14. void print(struct student stu[]);
  15. void search(struct student stu[], char name[]);
  16. void main()
  17. {
  18.     char name[15];
  19.     input(stu);
  20.     print(stu);
  21.     printf("\n请输入想要查找的学生姓名: ");
  22.     scanf("%s", name);
  23.     search(stu, name);
  24. }

  25. void input(struct student stu[])
  26. {
  27.     for(int i=0;i<N;i++)
  28.     {
  29.         printf("输入第%d个学生的信息\n",i+1);
  30.         printf("姓名: ");
  31.         scanf("%s", stu[i].name);
  32.         printf("学号: ");
  33.         scanf("%s", stu[i].num);
  34.         printf("籍贯: ");
  35.         scanf("%s", stu[i].place);
  36.         printf("身份证号: ");
  37.         scanf("%s", stu[i].id);
  38.         printf("年龄: ");
  39.         scanf("%d", &stu[i].age);
  40.         printf("家庭住址: ");
  41.         scanf("%s", stu[i].address);
  42.     }
  43. }
  44. void print(struct student stu[])
  45. {
  46.     printf("姓名学号 籍贯 身份证号 年龄地址 \n");
  47.     for(int i=0; i<N; i++)
  48.         printf("%s %s %s %s %d %s\n", stu[i].name, stu[i].num, stu[i].place, stu[i].id, stu[i].age, stu[i].address);
  49. }
  50. void search(struct student stu[], char name[])
  51. {
  52.     int flag=0;
  53.     for(int i=0; i<N; i++)
  54.         if(strcmp(stu[i].name, name)==0)
  55.         {
  56.             printf("%s %s %s %s %d %s\n", stu[i].name, stu[i].num, stu[i].place, stu[i].id, stu[i].age, stu[i].address);
  57.             flag = 1;
  58.         }
  59.     if(flag == 0)
  60.         printf("没有该学生的信息!\n");
  61. }
复制代码


修改点如下:

1、结构体内的 name, num, place, id 和 address 应使用 char 类型而非 int 类型。
2、结构体 stu[N] 后面应该有一个分号
3、去掉了多余的分号和花括号。
4、使用 %s 而非 %d 读取字符串。
5、用 scanf("%s", name); 而非 scanf("%d", name); 读取姓名。
6、在 input 函数中,将 &i+1 修改为 i+1。

注意:void main() 不是标准 C 语言的写法,请使用 int main() 并在程序结束前返回 0。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-3-17 19:47:54 | 显示全部楼层
歌者文明清理员 发表于 2023-3-17 19:43
这不是Python……"input???print???"

可能有些太急了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-17 19:48:26 | 显示全部楼层
isdkz 发表于 2023-3-17 19:44
你的代码存在一些语法错误,以下是修改后的代码:

大佬nb
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 17:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表