#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
LinkList Create();/* 细节在此不表 */
int NegativeInt(LinkList L);
int main()
{
LinkList L, p;
ElemType e;
L = Create();
printf("The number of negative integers is %d.\n", NegativeInt(L));
return 0;
}
/* 你的代码将被嵌在这里 */
int NegativeInt(LinkList L){
LNode *p;
int sum=0;
p=L->next;
if(p==NULL){
return 0;
}else{
while (p!= NULL)
{
if(p->data <0){
sum++;
}
p = p->next;
}
}
return sum;
}
in
6 -3 4 -5 3 -1
out
2
代码没什么问题。供参考:
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode* next;
}LNode, * LinkList;
LinkList Create();/* 细节在此不表 */
int NegativeInt(LinkList L);
LinkList Create()
{
ElemType data;
LinkList head, p, q;
head = (LinkList)malloc(sizeof(LNode));
head->next = NULL;
p = head;
while (1) {
scanf("%d", &data);
if (data == -1) break;
q = (LinkList)malloc(sizeof(LNode));
q->next = NULL;
q->data = data;
p->next = q;
p = q;
}
return head;
}
int main()
{
LinkList L, p;
ElemType e;
L = Create();
printf("The number of negative integers is %d.\n", NegativeInt(L));
return 0;
}
/* 你的代码将被嵌在这里 */
int NegativeInt(LinkList L) {
LNode* p;
int sum = 0;
p = L->next;
if (p == NULL) {
return 0;
}
while (p != NULL)
{
if (p->data < 0) {
sum++;
}
p = p->next;
}
return sum;
}