第58节课件是不是没有啊?
RT,第58课离奇失踪了{:10_266:} 是没有么还是我下载的课件不全啊{:10_250:}附上链表作业
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct student)
struct student *creat();
void print(struct student *);
struct student *dele(struct student *, int);
struct student *add(struct student *);
struct student
{
int num;
float score;
struct student *next;
};
int n = 0;
void main()
{
int m;
struct student *p = creat();
printf("\nstudent is num = %d\n\n", n);
print(p);
printf("\nplease delete num: ");
scanf("%d", &m);
p = dele(p, m);
printf("\nstudent is num = %d\n\n", n);
print(p);
p = add(p);
printf("student is num = %d\n\n", n);
print(p);
}
struct student *creat()
{
struct student *p1, *p2, *head;
char ch;
int num = 0;
p1 = p2 = (struct student *)malloc(LEN);
printf("please input num: ");
scanf("%d", &p1->num);
#if 0
while((ch = getchar()) != '\n')
{
if(ch >='0' && ch<='9')
{
num = num * 10 + (ch - '0');
}
}
p1->num = num;
#endif
printf("please input score: ");
scanf("%f", &p1->score);
head = NULL;
while(p1->num)
{
n++;
if(n == 1)
{
head = p1;
}
else
{
p2->next = p1;
}
p2 = p1;
p1 = (struct student *)malloc(LEN);
printf("\nplease input num: ");
scanf("%d", &p1->num);
printf("please input score: ");
scanf("%f", &p1->score);
}
free(p1);
p2->next = NULL;
return head;
}
void print(struct student *p)
{
do
{
printf("\ttnum = %d\t\tscore = %.2f\n", p->num, p->score);
p = p->next;
}while(p);
}
struct student *dele(struct student *head, int m)
{
struct student *p1, *p2;
if(!head)
{
printf("\nThis list is null!\n");
goto END;
}
p1 = head;
while(p1->num != m && p1->next != NULL)
{
p2 = p1;
p1 = p1->next;
}
if(m == p1->num)
{
if(p1 == head)
{
head = p1->next;
}
else
{
p2->next = p1->next;
free(p1);
}
printf("\nDelete No: %d succeed!\n", m);
n--;
}
else
{
printf("%d not been found!\n", m);
}
END:
return head;
}
struct student *add(struct student *p)
{
struct student *pn, *head = p, *p1;
pn = (struct student *)malloc(LEN);
printf("\nplease input add num: ");
scanf("%d", &pn->num);
printf("please input add score: ");
scanf("%f", &pn->score);
if(!p)
{
p = pn;
pn->next = NULL;
}
else
{
while(pn->num > p->num && p->next)
{
p1 = p;
p = p->next;
}
if(pn->num <= p->num)
{
if(head == p)
{
head = pn;
}
else
{
p1->next = pn;
}
pn->next = p;
}
else
{
p->next = pn;
pn->next = NULL;
}
}
n++;
return head;
} 好像确实没有
高山 发表于 2022-10-19 09:19
好像确实没有
哟找到了b站的第一版的视频,发现59课就是58课{:10_250:} 竹逸 发表于 2022-10-19 10:50
哟找到了b站的第一版的视频,发现59课就是58课
现场直播重合事件.........
页:
[1]