编写一个程序,从键盘先输入n的值,然后输入n个正整数,输出每个数出现的次数
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]);
}
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 不然最后一位输不出来 就这么点东西 你肯定能写的