
C语言链表里面的一些问题,编译器没有任何提示,反正就是不能运行,一直卡在那里
下面是我的代码,还没写完,不过正常的话应该能运行的。#include<stdio.h>#include<stdlib.h>structstu{charname[20];i...
下面是我的代码,还没写完,不过正常的话应该能运行的。#include <stdio.h>#include <stdlib.h>struct stu{ char name[20]; int f; char d; struct stu *pnext;};struct stu* newhear() //为所有学生姓名和成绩进行初始化{ struct stu *ph, *pn, *pe; int c, d; printf("请输入学生总人数(不超过50人):"); scanf_s("%d", &d, 4); //输入学生总人数 pe = (struct stu*)malloc(sizeof(struct stu)); //为pe分配内存 也是第一个节点 ph = pn = pe; //使第一个学生成为头 for (c = 0; c < d; c++) { printf("请输入第%d个学生的姓名\n",c+1); scanf_s("%s", pn->name, 20); //输入第一个学生的姓名和成绩 printf("成绩;\n"); scanf_s("%d",&pn->f, 4); if (c < (d - 1)) { pe = (struct stu*)malloc(sizeof(struct stu)); pn->pnext = pe; pn = pe; } } pn->pnext = NULL; return ph; //返回链表的开头,便于后面调用}double Average(struct stu *pe){ struct stu *pa ; pa = pe; int a; int b; for(a = 1,b=0; pa != NULL; a++); { b = pa->f+b; pa = pa->pnext; } b = b / a; return b;}void garde(struct stu *pe,double a){ struct stu *pg = pe; while (pg != NULL) { if ((a + 10) < pg->f) pg->d = 'A'; if ((pg->f>=(a-10))&& (pg->f<=(a+10))); pg->d = 'B'; if(pg->f<(a-10)) pg->d = 'C'; pg = pg->pnext; }}main(){ struct stu *pe; double a; pe = newhear(); //接受链表的头 a=Average(pe); //求平均分数 garde(pe,a); //调用打分系统 system("pause");}
展开
1个回答
2018-04-28 · 知道合伙人互联网行家
关注

展开全部
指针使用比较灵活,如果说它的好处,根据我平时编程时的感受,大概有这么几点:
1.在数据传递时,如果数据块较大(比如说数据缓冲区或比较大的结构),这时就可以使用指针传递地址而不是实际数据,即提高传输速度,又节省大量内存。
2.数据转换,利用指针的灵活的类型转换,可以用来做数据类型转换,比较常用于通讯缓冲区的填充,比如说,一个数据缓冲区char buf[100],如果其中buf[0,1]为命令号,buf[2,3]为类型,buf[4~7]为某一数值,类型为int,就可以使用如下语句进行赋值:
*(short*)&buf[0]=cmdID;
*(short*)&buf[2]=type;
*(int*)&buf[4]=value;
3.字符串指针,是使用最方便,且常用的。
4.函数指针,形如:#define PMYFUN (void*)(int,int),可以用在大量分支处理的实例当中,如某通讯根据不同的命令号执行不同类型的命令,则可以建立一个函数指针数组,进行散转。
5.在数据结构中,链表、树、图等大量的应用都离不开指针。
1.在数据传递时,如果数据块较大(比如说数据缓冲区或比较大的结构),这时就可以使用指针传递地址而不是实际数据,即提高传输速度,又节省大量内存。
2.数据转换,利用指针的灵活的类型转换,可以用来做数据类型转换,比较常用于通讯缓冲区的填充,比如说,一个数据缓冲区char buf[100],如果其中buf[0,1]为命令号,buf[2,3]为类型,buf[4~7]为某一数值,类型为int,就可以使用如下语句进行赋值:
*(short*)&buf[0]=cmdID;
*(short*)&buf[2]=type;
*(int*)&buf[4]=value;
3.字符串指针,是使用最方便,且常用的。
4.函数指针,形如:#define PMYFUN (void*)(int,int),可以用在大量分支处理的实例当中,如某通讯根据不同的命令号执行不同类型的命令,则可以建立一个函数指针数组,进行散转。
5.在数据结构中,链表、树、图等大量的应用都离不开指针。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询