UVA11462年龄排序
生活随笔
收集整理的這篇文章主要介紹了
UVA11462年龄排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 給你200w個人的年齡,年齡的范圍是1-100,然后讓你從小到大排序輸出所有人的年齡,題目還特意強調輸入文件限制25MB,題目內存限制2MB.
思路:
? ? ?比較經典又簡單的一個題目了,很早以前就見過了,我們可以開一個數組num[101]的,每來一個年齡a我們就num[a]++,最后輸出num[1]個1,num[2]個2...就行了。
? ? ?
? ? ??
#include<stdio.h>
#include<string.h>
int num[105];
int main ()
{
? ? int n ,i ,a;
? ? while(~scanf("%d" ,&n) && n)
? ? {
? ? ? ?memset(num ,0 ,sizeof(num));
? ? ? ?for(i = 1 ;i <= n ;i ++)
? ? ? ?{
? ? ? ? ? scanf("%d" ,&a);
? ? ? ? ? num[a] ++;
? ? ? ?}
? ? ? ?int mk = 0;
? ? ? ?for(i = 1 ;i <= 100 ;i ++)
? ? ? ?{
? ? ? ? ? while(num[i]--)
? ? ? ? ? {
? ? ? ? ? ? ?if(!mk) printf("%d" ,i);
? ? ? ? ? ? ?else printf(" %d" ,i);
? ? ? ? ? ? ?mk = 1;
? ? ? ? ? }
? ? ? ?}
? ? ? ?printf("\n");
? ? ?}
? ? ?return 0;
}
? ? ? 給你200w個人的年齡,年齡的范圍是1-100,然后讓你從小到大排序輸出所有人的年齡,題目還特意強調輸入文件限制25MB,題目內存限制2MB.
思路:
? ? ?比較經典又簡單的一個題目了,很早以前就見過了,我們可以開一個數組num[101]的,每來一個年齡a我們就num[a]++,最后輸出num[1]個1,num[2]個2...就行了。
? ? ?
? ? ??
#include<stdio.h>
#include<string.h>
int num[105];
int main ()
{
? ? int n ,i ,a;
? ? while(~scanf("%d" ,&n) && n)
? ? {
? ? ? ?memset(num ,0 ,sizeof(num));
? ? ? ?for(i = 1 ;i <= n ;i ++)
? ? ? ?{
? ? ? ? ? scanf("%d" ,&a);
? ? ? ? ? num[a] ++;
? ? ? ?}
? ? ? ?int mk = 0;
? ? ? ?for(i = 1 ;i <= 100 ;i ++)
? ? ? ?{
? ? ? ? ? while(num[i]--)
? ? ? ? ? {
? ? ? ? ? ? ?if(!mk) printf("%d" ,i);
? ? ? ? ? ? ?else printf(" %d" ,i);
? ? ? ? ? ? ?mk = 1;
? ? ? ? ? }
? ? ? ?}
? ? ? ?printf("\n");
? ? ?}
? ? ?return 0;
}
總結
以上是生活随笔為你收集整理的UVA11462年龄排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVA11427玩纸牌(全概率+递推)
- 下一篇: UVA11464偶数矩阵