zoukankan      html  css  js  c++  java
  • C语言 · 数的统计

    问题描述
      在一个有限的正整数序列中,有些数会多次重复出现在这个序列中。
      如序列:3,1,2,1,5,1,2。其中1就出现3次,2出现2次,3出现1 次,5出现1次。
      你的任务是对于给定的正整数序列,从小到大依次输出序列中出现的数及出现的次数。
    输入格式
      第一行正整数n,表示给定序列中正整数的个数。
      第二行是n 个用空格隔开的正整数x,代表给定的序列。
    输出格式
      若干行,每行两个用一个空格隔开的数,第一个是数列中出现的数,第二个是该数在序列中出现的次数。
    样例输入
    12
    8 2 8 2 2 11 1 1 8 1 13 13
    样例输出
    1 3
    2 3
    8 3
    11 1
    13 2
    数据规模和约定
      数据:n<=1000;0<x<=1000,000。
     1 #include<stdio.h>
     2 /*统计数组中某元素出现的次数*/
     3 int find(int *arr,int l,int n)  
     4 {  
     5     int i=0,k=0;  
     6     for(i=0;i<l;i++)  
     7     if(arr[i]==n) k++;  
     8     return k;  
     9 }
    10 int main(){
    11     int n;
    12     scanf("%d",&n);
    13     int a[n];
    14     int num[n][2]={0};
    15     for(int i=0;i<n;i++){
    16         scanf("%d",&a[i]);
    17     }
    18     /*冒泡升序*/
    19     for(int i=0; i<n-1; i++){
    20         for(int j=0; j<n-1-i; j++){
    21             if(a[j]>a[j+1]){
    22                 int t = a[j];
    23                 a[j] = a[j+1];
    24                 a[j+1] = t;
    25             }
    26         }
    27     }
    28     printf("%d %d
    ",a[0],find(a,n,a[0])); //数组首位单独输出  
    29     for(int i=1;i<n;i++)  
    30         if(a[i]!=a[i-1]) //一个数字及其出现次数只需输出一次  
    31         printf("%d %d
    ",a[i],find(a,n,a[i]));  
    32     return 0;  
    33 }
  • 相关阅读:
    canvas---HTML5新特性
    flex布局之兼容
    前端Blob对二进制流数据的处理方式
    execCommand的复制
    express快速入门
    react+redux+webpack+git技术栈
    react开发
    gulp工程化工具
    python---django安装
    vue+webpack+element-ui+git
  • 原文地址:https://www.cnblogs.com/panweiwei/p/6270897.html
Copyright © 2011-2022 走看看