第6届ACM程序设计大赛决赛试题.doc
文本预览下载声明
第六届ACM程序设计大赛决赛试题(A)---中北大学
2011-03-11 15:31
A-简单排序
Description
落落是数学系的,老师给了他们一大堆数字,让他们统计每个数字出现的次数,并画成条形统计图。落落认为So easy。他想让你帮他写一个程序来完成统计每个数字出现的次数,并由小到大输出这些数字,和它出现的次数。?
Input
输入N个数字,输入里面全是待排序的数字且不含有除了数字、空格、换行符和EOF以外的字符(N不超过1000)。?
Output
从小到大输出,一个一行,并输出每个数字出现的次数,若有重复的数字只需输出一个(即输出结果没有重复的数字)。?
Example Input
1 3 6 89 56 23 5 9 6 5 4 3 2 1
Example Output
1 2
2 1
3 2
4 1
5 2
6 2
9 1
23 1
56 1
89 1
Last modified on 2010-04-24 10:12:43
?
#include stdio.h
int main()
{
???????int ch,i=0,j=0,count=1;;
???????int num[1000];
???????while (scanf(%d,ch)!=EOF)
???????{
??????????????if (ch!=NULL)
??????????????{
?????????????????????num[i]=ch;
?????????????????????i++;
??????????????}
???????}
???????ch=i-1;
???????for (i=ch-1;i=0;i--)
???????{
??????????????int temp;
??????????????for (j=0;j=i;j++)
??????????????{
?????????????????????if (num[j]num[j+1])
?????????????????????{
????????????????????????????temp=num[j];
????????????????????????????num[j]=num[j+1];
????????????????????????????num[j+1]=temp;
?????????????????????}
??????????????}
???????}
???????for (i=0;i=ch;i++)
???????{
?????????????????????if(num[i]!=num[i+1])
?????????????????????{
????????????????????????????if (i!=ch)
????????????????????????????{
???????????????????????????????????printf(%d %d\n,num[i],count);
???????????????????????????????????count=1;
????????????????????????????}
????????????????????????????if (i==ch)
????????????????????????????{
???????????????????????????????????printf(%d %d,num[i],count);
????????????????????????????}
?????????????????????}
?????????????????????if (num[i]==num[i+1])
?????????????????????{
????????????????????????????count=count+1;
?????????????????????}
???????}
???????return 0;
}?
B-战斗值??
Description
佳佳最近迷上了收集一种战斗卡片,这种卡片每张有固定的战斗值。今天佳佳把收集的卡片 借给莉莉,被莉莉弄丢了许多张。为此佳佳很生气。请你帮他写一个程序,把剩下的卡片按战斗值从小到大输出。?
Input
本题有多组测试数据,每组测试数据分三行;第一行只有一个正整数n(2=n=100),表示佳佳原有的卡片张数;第二行含n个正整数,表示n张卡片的战斗值,战斗值小于10000,且无相同战斗值的卡片;第三行含若干个正整数,总数小于n,表示被莉莉丢失的卡片;输入0,即n=0时输入结束。?
Output
每组测试数据输出占一行,按战斗值从小到大输出佳佳剩下的卡
显示全部