代码如下:#include <stdio.h>
#include <stdlib.h>
struct xsnode
{int xh;//学号
char xm[15];
//姓名
int gs;//高数
int yy;//英语
int wl;//物理
double pj;//平均分
struct xsnode *next;};
struct xsnode *create()//学生信息录入,建立链表
{int i;int n;
struct xsnode *head=NULL,*p;//head为头指针
printf("输入班级人数:");
scanf("%d",&n);printf("\n\n 输入学生信息\n");
printf("学号 姓名 高数 英语 物理\n");
for(i=0;i<n;i++)
{p=(struct xsnode*)malloc(sizeof(struct xsnode));
scanf("%d %s %d %d %d",&p->xh,p->xm,&p->gs,&p->yy,&p->wl);
if(head==NULL)
{head=p; head->next=NULL;} //head指向第一个结点
else
{ head->next=p; p->next=NULL; //新结点插入头结点后面,p指向新结点 }
}
return head;}
void average(struct xsnode *xshead) //求每个学生的平均分
{struct xsnode *p=xshead;
//p指向第一个结点
while(p!=NULL)
{ p->pj=(p->gs+p->yy+p->wl)/3.0; p=p++;//p指针后移}}
void output(struct xsnode *xshead) //输出学生信息
{struct xsnode *p=xshead;printf("\n\n\n 输出学生信息\n");
printf("学号 姓名 高数 英语 物理 平均分\n");
while(p!=NULL)
{printf("%-8d%-10s%-9d%-9d%-9d%-9.2d%\n",p->xh,p->xm,p->gs,p->yy,p->wl,p->pj);
p=p->next;}}
void main()
{struct xsnode *xshead;
xshead=create(); //创建链表
average(xshead);//求平均分
output(xshead); //输出链表
}到底哪里有问题啊,为什么不能输出平均成绩啊?
#include <stdlib.h>
struct xsnode
{int xh;//学号
char xm[15];
//姓名
int gs;//高数
int yy;//英语
int wl;//物理
double pj;//平均分
struct xsnode *next;};
struct xsnode *create()//学生信息录入,建立链表
{int i;int n;
struct xsnode *head=NULL,*p;//head为头指针
printf("输入班级人数:");
scanf("%d",&n);printf("\n\n 输入学生信息\n");
printf("学号 姓名 高数 英语 物理\n");
for(i=0;i<n;i++)
{p=(struct xsnode*)malloc(sizeof(struct xsnode));
scanf("%d %s %d %d %d",&p->xh,p->xm,&p->gs,&p->yy,&p->wl);
if(head==NULL)
{head=p; head->next=NULL;} //head指向第一个结点
else
{ head->next=p; p->next=NULL; //新结点插入头结点后面,p指向新结点 }
}
return head;}
void average(struct xsnode *xshead) //求每个学生的平均分
{struct xsnode *p=xshead;
//p指向第一个结点
while(p!=NULL)
{ p->pj=(p->gs+p->yy+p->wl)/3.0; p=p++;//p指针后移}}
void output(struct xsnode *xshead) //输出学生信息
{struct xsnode *p=xshead;printf("\n\n\n 输出学生信息\n");
printf("学号 姓名 高数 英语 物理 平均分\n");
while(p!=NULL)
{printf("%-8d%-10s%-9d%-9d%-9d%-9.2d%\n",p->xh,p->xm,p->gs,p->yy,p->wl,p->pj);
p=p->next;}}
void main()
{struct xsnode *xshead;
xshead=create(); //创建链表
average(xshead);//求平均分
output(xshead); //输出链表
}到底哪里有问题啊,为什么不能输出平均成绩啊?