编写一个程序,从键盘先输入n的值,然后输入n个正整数,输出每个数出现的次数

输入:第一行n(5<n<30)是一个整数,表示要输入整数的个数;第二行是n个整数,每个整数均小于100000输出:按照整数从小到大的顺序依次输出不同的整数及其出现次数,整... 输入:第一行n(5<n<30)是一个整数,表示要输入整数的个数;第二行是n个整数,每个整数均小于100000输出:按照整数从小到大的顺序依次输出不同的整数及其出现次数,整数和出现次数之间用:分隔. 展开
 我来答
听不清啊
高粉答主

2013-11-23 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

var a:array[1..30]of longint;

    n,i,j,t:integer;

begin

  read(n);

  for i:=1 to n do read(a[i]);

  for i:=1 to n-1 do

    for j:=1 to n-i do

      if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end;

  i:=1; j:=1;

  while i<n do

  begin

    write(a[i],':');

    while (i<n)and(a[i]=a[i+1]) do begin inc(i); inc(j) end;

    writeln(j); inc(i); j:=1;

  end;

  if i=n then writeln(a[n],':1');

end.

追问
能用C++语言编这个程序吗?
追答

#include<stdio.h>

void main()

{

 long t,a[30];

 int n,i,j;

 scanf("%d",&n);

 for(i=0;i<n;i++)

   scanf("%ld",&a[i]);

 for(i=0;i<n-1;i++)

   for(j=0;j<n-1-i;j++)

     if(a[j]>a[j+1])

       {t=a[j];a[j]=a[j+1];a[j+1]=t;}

 for(i=0,j=1;i<n-1;i++)

 {

  printf("%ld:",a[i]);

  while(i<n-1&&a[i]==a[i+1]){i++;j++;}

  printf("%d\n",j);

  j=1;

 }

 if(i==n-1)printf("%ld:1\n",a[i]);

}

百度网友3b602ae8cb
2013-11-23 · 超过34用户采纳过TA的回答
知道答主
回答量:81
采纳率:100%
帮助的人:73.3万
展开全部
import java.util.Arrays;

public class Test {
public static void main(String[]args){
int length = Integer.parseInt(args[0]);
int a[] = new int[length+1];
a[length] = 100001;
for(int i=0;i<length;i++){
a[i] = Integer.parseInt(args[i+1]);
}
Arrays.sort(a);
int temp = 1;
for(int i=0;i<a.length-1;i++){
if(a[i]==a[i+1]){
temp++;
}else{
System.out.println(a[i]+":"+temp);
temp = 1;
}
}
}

}
追问
能用c++语言吗?
追答
c++很久没用了 工具也没有了 你看看理解就可以 
排个序 然后再 从头往后 比较 a[i] a[i+1]
相等就让计数器+1 不相等就输出 重置计数器
结尾+个 100001 不然最后一位输不出来 就这么点东西 你肯定能写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式