2729 - 比正整数大的数
时间限制 : 1 秒
内存限制 : 128 MB
建立一个单链表,输入一组正整数,确定在序列中比正整数x大的数有几个。
题目输入
第一行:输入一组正整数
第二行:输入x的值。
题目输出
第一行,输出比x大的元素。
第二行,输出个数。
输入/输出样例
输入格式
2 3 4 5 6 4
输出格式
5 6 2
C语言解答
#include <stdio.h> #define MAX 100 #define size 5 typedef int elemtype; //声明 typedef struct seqlist //定义 { elemtype elem[MAX]; int last; }Seqlist; int main() { struct seqlist l; int i,x,k=0; l.last=size; for(i=0;i<l.last;i++) scanf("%d",&l.elem[i]); scanf("%d",&x); for(i=0;i<l.last;i++) { if(x<l.elem[i]) { if(i==l.last-1) printf("%d",l.elem[i]); else printf("%d ",l.elem[i]); k++; } } printf("\n"); printf("%d\n",k); }
C++解答
#include <stdio.h> #include <stdlib.h> typedef int ElemType; typedef struct Node { ElemType data; struct Node * next; }Node,*LinkList; void CreateFromTail(LinkList L) { int i; Node * s,* r; r=L; for(i=0;i<5;i++) { s=(Node *)malloc(sizeof(Node)); scanf("%d",&s->data); s->next=r->next; r->next=s; r=s; } } void Del(LinkList L,ElemType e) { Node *s,*r; s=L; while(s->next!=NULL) { if(s->next->data<=e) { r=s->next; s->next=s->next->next; free(r); } else s=s->next; } } void display(LinkList L) { Node *c; c=L->next; printf("%d",c->data); printf(" "); c=c->next; printf("%d",c->data); printf("\n"); } int ss(LinkList L) { int n; n=0; Node *c; c=L; while(c->next!=NULL) { n++; c=c->next; } return(n); } int main() { LinkList L; int e,n; L=(Node *)malloc(sizeof(Node)); L->next=NULL; CreateFromTail( L); scanf("%d",&e); Del( L, e); display( L); n=ss(L); printf("%d",n); return 0; }