本题要求实现一个函数,输出带头结点的单链表中值为正数的元素和以及单链表中元素结点数。
函数接口定义:
void Count_sum (LinkList L);
L是带头结点的单链表的头指针,其中元素结点的数据域为整数,输出链表中数据域为正数的元素和以及单链表中元素结点数。如果单链表为空,和为0。
其中LinkList结构定义如下:
typedef struct LNode
{
int data; //数据域
struct LNode *next;
}LNode, *LinkList;
裁判测试程序样例:
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *LinkList;
LinkList Create();/* 细节在此不表 */
void Count_sum(LinkList L);
int main()
{
LinkList L, p;
L = Create();
Count_sum(L);
return 0;
}
/* 你的代码将被嵌在这里 */
输入格式:
输入数据有1行,给出以-1结束的单链表元素(都是整数,且-1不属于单链表元素),所有数据之间用空格分隔。
输入样例:
2 -6 4 13 6 -9 -1
输出格式:
输出两个整数,分别表示和与结点个数,这两个整数之间用空格分隔。
输出样例:
25 6
void Count_sum(LinkList L)
{
int sum=0;
int c=0;
for(LinkList p=L->next;p!=NULL;p=p->next)
{
if(p->data>0) sum=sum+p->data;
c++;
}
printf("%d %d",sum,c);
}