user-0 提问: 与用c语言编写程序，求解？

回复:
user: user-1
content: 数组名可以不要，这个是数组元素，必须得要。p可以不要&, p[i]必须得要&

user: user-2
content: 引用 3 楼 chxchxkkk 的回复:贴个简单的代码供参考。  #include <stdio.h> #define STUSIZE 5 struct student {     int num;     char name[20];     char sex[4];     char homeaddr[50];     float yuwen;     float shuxue;     float waiyu; };  //输入学生信息 void input_stu(struct student p[]) {     int i;     for (i=0; i<STUSIZE; i++)     {         printf("请输入第%d个学生信息：\n", i+1);         printf("请输入学号：\n");         scanf("%d", &p[i].num);         printf("请输入姓名：\n");         scanf("%s", &p[i].name);         printf("请输入性别：\n");         scanf("%s", &p[i].sex);         printf("请输入住址：\n");         scanf("%s", &p[i].homeaddr);         printf("请输入语文成绩：\n");         scanf("%f", &p[i].yuwen);         printf("请输入数学成绩：\n");         scanf("%f", &p[i].shuxue);         printf("请输入外语成绩：\n");         scanf("%f", &p[i].waiyu);     } }  //检索学生信息 void findstu(struct student stu[], int num) {     int i = 0;     for(i=0; i<STUSIZE; i++)     {         if(stu[i].num == num)         {             printf("此学生三门课成绩为：语文%.2f  数学%.2f  外语%.2f\n",stu[i].yuwen,stu[i].shuxue, stu[i].waiyu);             break;         }         else         {             printf("未找到此学生！\n");         }     } }  //显示不及格学生人数 void showstu(struct student stu[]) {     int i, icount=0, acount=0;     for(i=0; i<STUSIZE; i++)     {         if(stu[i].yuwen < 60 || stu[i].shuxue < 60 || stu[i].waiyu < 60)         {             icount ++;         }         if(stu[i].yuwen < 60 && stu[i].shuxue < 60 && stu[i].waiyu < 60)         {             acount ++;         }     }     printf("有一门不及格的人数是：%d  所有课程都不及格的人数是： %d", icount, acount); }  int main() {     int n=0;     struct student stu[STUSIZE] = {0};     input_stu(stu);     printf("请输入要检索的学生学号：\n");     scanf("%d", &n);     findstu(stu, n);     showstu(stu);      return 0; }    scanf("%s", &p[i].name); scanf("%s", &p[i].homeaddr); 这两行代码去掉&才对吧。因为数组名就是地址呀

user: user-1
content: 贴个简单的代码供参考。  #include <stdio.h> #define STUSIZE 5 struct student {     int num;     char name[20];     char sex[4];     char homeaddr[50];     float yuwen;     float shuxue;     float waiyu; };  //输入学生信息 void input_stu(struct student p[]) {     int i;     for (i=0; i<STUSIZE; i++)     {         printf("请输入第%d个学生信息：\n", i+1);         printf("请输入学号：\n");         scanf("%d", &p[i].num);         printf("请输入姓名：\n");         scanf("%s", &p[i].name);         printf("请输入性别：\n");         scanf("%s", &p[i].sex);         printf("请输入住址：\n");         scanf("%s", &p[i].homeaddr);         printf("请输入语文成绩：\n");         scanf("%f", &p[i].yuwen);         printf("请输入数学成绩：\n");         scanf("%f", &p[i].shuxue);         printf("请输入外语成绩：\n");         scanf("%f", &p[i].waiyu);     } }  //检索学生信息 void findstu(struct student stu[], int num) {     int i = 0;     for(i=0; i<STUSIZE; i++)     {         if(stu[i].num == num)         {             printf("此学生三门课成绩为：语文%.2f  数学%.2f  外语%.2f\n",stu[i].yuwen,stu[i].shuxue, stu[i].waiyu);             break;         }         else         {             printf("未找到此学生！\n");         }     } }  //显示不及格学生人数 void showstu(struct student stu[]) {     int i, icount=0, acount=0;     for(i=0; i<STUSIZE; i++)     {         if(stu[i].yuwen < 60 || stu[i].shuxue < 60 || stu[i].waiyu < 60)         {             icount ++;         }         if(stu[i].yuwen < 60 && stu[i].shuxue < 60 && stu[i].waiyu < 60)         {             acount ++;         }     }     printf("有一门不及格的人数是：%d  所有课程都不及格的人数是： %d", icount, acount); }  int main() {     int n=0;     struct student stu[STUSIZE] = {0};     input_stu(stu);     printf("请输入要检索的学生学号：\n");     scanf("%d", &n);     findstu(stu, n);     showstu(stu);      return 0; }

user: user-3
content: 这个作业简单也简单，说难也难，估计老师就没讲过键盘输入中的异常情况需求，各种确认以后的更改需求，哈哈. 用键盘太恶心了，能用文本当输入源码

user: user-4
content: 要想学习，这种题目就自己写，错了的话贴代码提问 要想交作业糊弄老师，就百度源码去吧