利用creat创建链表 利用outlist打印链表 利用 fun 函数 返回链表中最大的值

#include <stdio.h>
#include <stdlib.h>
#define  N  8

struct  slist
{ 
	double  s;
	struct slist *next;
};

typedef  struct slist  STREC;          

double  fun( STREC *h )
{
	int i;
	double max;
	
	for(i=0;i<N;i++)
	{
		h=h->next;

		if(max<(h->s)) max=(h->s);
	};
	return max;	
}

STREC *creat( double *s) //定义返回值为 STREC类型的 地址 形参为指向实型的指针
{
	STREC *h,*p,*q;    //定义三个指向STREC型的指针
	int  i=0;
	h=p=(STREC*)malloc(sizeof(STREC));     //动态分配STREC型大小空间首地址赋给 h、p  头结点
	p->s=0;                            //头结点数据域 为 0  
	while(i<N)                                  
	{
		q=(STREC*)malloc(sizeof(STREC));      //   动态分配 size 空间  首地址赋给q
		q->s=s[i];   
		i++;                            
		p->next=q;                             // 建立连接  把后一个节点的地址赋给直接前驱的指针域    
		p=q;                                   //  p后移
	}
	p->next=0;                                   //尾节点 的指针域赋为空
	return  h;                                    //返回头节点的地址
}

outlist(STREC *h)               // 带入头指针  打印链表
{ 
	STREC  *p;
	p=h->next; 
	printf("head");
	do
	{ 
		printf("->%2.0f",p->s);
		p=p->next;
	}
	while(p!=0);
	printf("\n\n");
}

main()
{ 
	double  s[N]={85,76,69,85,91,72,64,87}, max;
	STREC  *h;                     
	h=creat(s); 
	outlist(h);
	max=fun(h);
	printf("max=%6.1f\n",max);
	
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值