【openjudge】数字统计
来源:互联网 发布:阿里云app测试平台 编辑:程序博客网 时间:2024/04/29 12:52
- 总时间限制:
- 1000ms
- 内存限制:
- 100000kB
- 描述
- 输入n个整数,统计每个数出现的次数.
- 输入
- 第一行是一个整数n(1<=n<=1000),接下来n行每行一个整数.
- 输出
- 第一行输出总共有多少个不同的整数.
接下来每行输出一个整数及这个整数出现的次数,用空格分隔.
输出的整数的顺序与它们在输入中第一次出现的顺序一致(即在输入中先出现的数,也会在输出中先出现) - 样例输入
523212
- 样例输出
32 33 11 1
这道题用顺序存储的数组也应该能实现。但是估计会超时。并且题目是链式存储的练习。所以还是用链表来解比较好。
#include <stdio.h>#include <malloc.h>typedef struct Lnode{ int data; int sum; struct Lnode *next;}LNode,*Linklist;LNode *head;void initlist(Linklist *L){ *L=(LNode *)malloc(sizeof(LNode)); (*L)->next=NULL; (*L)->sum=1;}void inselem(int n){ int x,i; LNode *s,*q,*p; for(i=0;i<n;i++){q=head;p=head->next;scanf("%d",&x);if(p==NULL){initlist(&s);s->data=x;head->next=s;}while(p!=NULL){if(x!=p->data){p=p->next;q=q->next;}else{p->sum++;break;}if(p==NULL){initlist(&s);s->data=x;q->next=s;}}}}int main(){ int n,x; LNode *q; head=(LNode *)malloc(sizeof(LNode));head->next=NULL; scanf("%d",&n); inselem(n);q=head->next; while(q!=NULL) { printf("%d %d\n",q->data,q->sum);q=q->next; } return 0;}
- 【openjudge】数字统计
- 【openjudge】数字组合
- openjudge 数字整除
- OpenJudge noi2985数字组合
- noi openjudge 数字组合
- 【Openjudge】英语数字转换器
- openjudge 7920 统计单词数
- 【Openjudge】出栈序列统计
- Openjudge-noi 2985 数字组合
- 数字统计
- 数字统计
- 【数字统计】
- 数字统计
- 数字统计
- 数字统计
- 数字统计
- 数字统计
- 数字统计
- metasploit的常用命令
- JS DIV自动滚动到最底
- HDU 1210 Eddy's 洗牌问题
- 设备驱动程序通知应用程序的几种方法
- error C3163: “_vsnprintf”: 属性与以前的声明不一致
- 【openjudge】数字统计
- OpenCV的三帧差法
- POJ 1935 Journey 树形DP
- ajax入门示例
- 浅谈网络语音技术
- 一张图让你看懂工资单
- CE6.0用户态驱动和应用程序访问物理内存的方法
- IOS第十五天——Hello World实例
- c++中STL排序算法程序