#include<stdio.h>
#include <malloc.h>
struct node{
char no[12];
char name[40];
float sales;
struct node*link;};
void serach(struct node *head){
float sum = 0.0;
struct node *q1,*q2;
struct node *p;
p = head->link;
q1 = head->link;
q2 = head->link;
while (p != NULL) {
if (p->sales >= q1->sales) {
q1 = p; }
if (p->sales <= q2->sales) {
q2 = p; }
sum += (p->sales);
p = p->link; }
printf("销售额最高:代号:%s,姓名:%s,销售额:%f\n",q1->no,q1->name,q1->sales); printf("销售额最低:代号:%s,姓名:%s,销售额:%f\n",q2->no,q2->name,q2->sales); printf("总额:%f\n",sum);}
void main(){
int i;
int n;
struct node *head;
struct node *tail;
head = (struct node *)malloc(sizeof(struct node));
head->link = NULL;
tail = head;
printf("要输入几个结点:");
scanf("%d",&n);
for (i = 0 ; i < n; ++i) {
struct node *pnew= (struct node *)malloc(sizeof(struct node));
pnew->link = NULL;
printf("输入代号:"); scanf("%s",pnew->no);
printf("输入name:"); scanf("%s",pnew->name);
printf("输入sales:"); scanf("%f",&pnew->sales);
tail->link = pnew;
tail = pnew; };
serach(head);
while (1);}
链表这么简单,为什么没有人理解呢。。。
#include<stdio.h>说实话我不喜欢这样,浪费了一个结点的空间。
追问q, q1 ,q2=head–>link什么意思,都指向一个下面是怎么比较的?
追答初始都指向第一个元素,p自己往下跳,不就实现比较了吗
追问while(1)加或不加都一样吧
追答用处是不允许程序自己退出,只允许用户关闭控制台
怎么发
追答思信我把