DJYLSY 于 2016.03.30 21:55 提问

#include
#include
#define N 4
struct binode{
char num;
char name;
int score;
};
struct binode binode;
struct binode *list=0;
struct binode *p=0;
struct binode *r=0;
struct binode *q=0;
struct binode *u=0;
void build()
{
int i;
for(i=0;i<N;i++)
{
p=(struct binode
)malloc(sizeof(struct binode));
printf("input the information of %d",i+1);
printf("\n");
printf("请输入学生学号:");
scanf("%s",p->num);
printf("请输入学生姓名:");
scanf("%s",p->name);
printf("请输入学生计算机成绩:");
scanf("%d",&p->score);
if(list==NULL)
{
}
else
{

``````        }
r=p;
}
``````

}
int delete()
{
int ch;
printf("请输入所删除学生的学号:");
q=list;
scanf("%s",ch);
while(strcmp(ch,q->num)!=0)
{
{
printf("cannot find the node");
return -1;
}
}
free(q);
return 1;
}
{
int excellent=0;
int good=0;
int ordinary=0;
int pass=0;
int fail=0;
int ah;
int i;
ah=u->score/10;
{
switch(ah)
{
case 10:
case 9:excellent++;break;
case 8:good++;break;
case 7:ordinary++;break;
case 6:pass++;break;
default:fail++;break;
}

i=1;
{
printf("the score of %d",i);
printf("%d",q->score);
}
printf("计算机基础成绩分数段统计");
printf("优秀(>90):%d\n良好(80-90):%d\n一般(70-80):%d\n及格(60-70):%d\n不及格(<60):%d\n",excellent,good,ordinary,pass,fail);
}
}
int main()
{
void build();
int delete();
int l;
while(1)
{
printf("************************欢迎光临！");
printf("\n");
printf("1.输入数据\n2.删除数据\n3.分数段统计\n");
printf("请选择:");
scanf("%d",&l);
switch(l)
{
case 1:build();break;
case 2:delete();break;
default:printf("wrong!");
}

}
}

4个回答

YXTS122   2016.03.30 22:16

DJYLSY 改过了，对的却是这样，但是后面也运行不了

DJYLSY 改过了，对的却是这样，但是后面也运行不了

YXTS122   2016.03.30 22:21

YXTS122 搞错了，我是说void build(); int delete(); void grade();这个可以省略不写

bealing   2016.03.30 21:59

DJYLSY 大哥，DEV-C一调试 就程序错误怎么办

qq423399099      2016.03.31 09:19

``````using namespace std;
#define N 4
void print();
struct binode{
char num[16];
char name[16];
int score;
};
struct binode binode;
struct binode *list=NULL;
struct binode *p=0;
struct binode *r=0;
struct binode *q=0;
struct binode *u=0;
void build()
{
int i;
for(i=0;i<N;i++)
{
p=(struct binode *)malloc(sizeof(struct binode));//这里也少了*
printf("input the information of %d",i+1);
printf("\n");
printf("请输入学生学号:");
scanf("%s",p->num);
printf("请输入学生姓名:");
scanf("%s",p->name);
printf("请输入学生计算机成绩:");
scanf("%d",&p->score);
if(list==NULL)
{
list=(struct binode *)malloc(sizeof(struct binode));//这里要为list开辟一个空间

}
else
{
}
r=p;
}
}
int my_delete()
{
char ch[16] = {0};
printf("请输入所删除学生的学号:");
scanf("%s",ch);
while(strcmp(ch,q->num)!=0)
{
{
printf("cannot find the node");
return -1;
}
}
{
}
else

free(q);
return 1;
}

//帮楼主加了一个打印的函数
void print()
{
while(q!=NULL)
{
printf("学号:%s,姓名:%s,成绩:%d\n", q->num, q->name, q->score);
}
}

{
int excellent=0;
int good=0;
int ordinary=0;
int pass=0;
int fail=0;
int ah;
int i;

while(u!=NULL)//这里判断u就行了
{
ah=u->score/10;//这个要放在循环里
switch(ah)
{
case 10:
case 9:excellent++;break;
case 8:good++;break;
case 7:ordinary++;break;
case 6:pass++;break;
default:fail++;break;
}
/*
i=1;
{
printf("the score of %d",i);
printf("%d",q->score);
}*/
}
printf("计算机基础成绩分数段统计");
printf("优秀(>90):%d\n良好(80-90):%d\n一般(70-80):%d\n及格(60-70):%d\n不及格(<60):%d\n",excellent,good,ordinary,pass,fail);
}
int main()
{
void build();
int my_delete();

int l;
while(1)
{
printf("************************欢迎光临！");
printf("\n");
printf("1.输入数据\n2.删除数据\n3.分数段统计\n4.打印数据\n");
printf("请选择:");
scanf("%d",&l);
switch(l)
{
case 1:build();break;
case 2:my_delete();break;
case 4:print();break;
default:printf("wrong!");
}
}
}

``````

DJYLSY 感谢大神。。。谢谢太谢谢你了