C语言指针函数链表复习

Posted 欣麒骥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言指针函数链表复习相关的知识,希望对你有一定的参考价值。

指向整型数据的指针类型表示为:int *,读作“指向int的指针”或简称“int指针”

p=&a;//表示把a的地址赋给指针变量p

print(“%d”,*p);//即指针变量p所指向的变量的值,即变量a的值。

运用代码:

#include <stdio.h>
#define N 3
struct Student

int num;
char name[20];
float score[3];
float aver;
;

int main(int argc, const char * argv[])
 
void input(struct Student stu[]);
struct Student max(struct Student stu[]);
void print(struct Student stu);
struct Student stu[N],*p=stu;
input(p);
print(max(p));
return 0;

void input(struct Student stu[])

int i;
printf("请输入各个学生的信息:学号、姓名、三门课成绩\\n");
for (i=0; i<N; i++) 
    scanf("%d%s%f%f%f",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
    stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;


struct Student max(struct Student stu[]) 
int i,m=0;
for(i=0;i<N;i++)

    if(stu[i].aver>stu[m].aver)m=i;

return stu[m];

void print(struct Student stud)

printf("\\n成绩最高的学生是:\\n");
printf("学号:%d\\n姓名:%s\\n三门课成绩:%5.1f,%5.1f,%5.1f\\n平均成绩:%6.2f\\n",stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);

链表:成绩系统,输入0为结束

#include <stdio.h>
#include <malloc.h>
#define LEN sizeof(struct Student)
struct Student

   long num;
    float score;
    struct Student* next;
;
int n;
struct Student* creatn()

struct Student *head;
struct Student *p1,*p2;
n=0;
p1=p2=(struct Student *)malloc(LEN);
scanf("%ld,%f",&p1->num,&p1->score);
head=NULL;
while (p1->num!=0) 
    n=n+1;
    if (n==1)
        head=p1;
        if (n==1)
            head=p1;

        else

            p2->next=p1;

    p2=p1;
    p1=(struct Student *)malloc(LEN);
    scanf("%ld,%f",&p1->num,&p1->score);

p2->next=NULL;
printf("%d",n);
return (head);


    void print(struct Student head)

    struct Student *p;
    printf("\\nNow,These %d records are :\\n",n);

    p=head;
    if(head!=NULL)
    do
    
        printf("%ld %5.1f\\n",p->num,p->score);
        p=p->next;
    while (p!=NULL);


int main(int argc, const char * argv[]) 
struct Student *head;
head=creatn();
printf(head);
return 0;

以上是关于C语言指针函数链表复习的主要内容,如果未能解决你的问题,请参考以下文章

C语言之链表————(转载)

c语言指针复习 难点突破 双重指针 函数指针结构体指针等...

用C语言写一个链表储存学生信息

C语言提升

C语言链表问题

c语言!!!程序设计:建立一个学生信息链表,包括学号,姓名,成绩.(实现添加,删除,查询,排序,平均)