#include
#define Length 10
typedef struct LNode
{
int elem;
struct LNode *pNext;
}LNode, *LinkList;
LNode * CreatLinkList(int n);
int GetEvenNumAndMaxValue(LinkList L, int *Max, int *EvenNum);
void main()
{
LinkList L;
int Max = 0, EvenNum = 0, Result = 0 ;
L = CreatLinkList(Length);
Result = GetEvenNumAndMaxValue(L, &Max, &EvenNum);
printf("最大值为:%d, 偶数数字的个数%d", Max, EvenNum);
}
int GetEvenNumAndMaxValue(LinkList L, int* Max, int* EvenNum)
{
int i = 0;
LinkList p, q;
p = L;
q = p->pNext;
*EvenNum = 0;
if(p->pNext == NULL)
{
return -1;
}
*Max = p->elem;
while(q!=NULL)
{
if(p->elem < q->elem)
{
*Max = q->elem;
}
if(((p->elem)%2) == 0)
{
(*EvenNum) += 1;
}
p = p->pNext;
q = q->pNext;
}
if(((p->elem)%2) == 0) //对最后一个元素作判断
{
(*EvenNum) += 1;
}
return 0;
}
LinkList CreatLinkList(int n)
{
int i = 0;
LinkList p, q;
printf("Please input the Data for LinkList Node:\n");
p = q = (LinkList)malloc(sizeof(LNode)); //已经有一个节点
p->pNext = NULL;
scanf("%d", &p->elem);
do
{
p->pNext= (LinkList)malloc(sizeof(LNode));
p = p->pNext;
scanf("%d", &p->elem);
p->pNext = NULL;
i++;
}while(i
return q;
}
去看 c2-2.h 的文件啊
里面有很多函数 包括创建链表的函数 应该存在一个参数是制定数据元素个数的
输出偶数的个数只要用for循环 不断的让一个指针指向当前的节点的next指针
如果该节点是偶数 那么就记下1
3和2 类似的 思想基本就这样 你没有c2-2.h文件给我们看
没人能用具体程序解答的