C语言输入n个整数,统计其中重复数及其个数

输入n个整数,统计其中重复数及其个数
输入: 5
1 2 3 4 5
输出: no same
输入: 5
1 2 3 2 1
输出: 1 :2 2:2
数组字符串部分
是C语言不是C++
第二个回答运行有点问题,bool exist=false; //标记是否有重复的数 这个地方出了问题,我用的是Win-TC

另外bool这个指令没学过,能否用简单点的程序

#include <stdio.h>

#define MAXINT 1000 //可输入的最大整数

void output(int total[])
{
int i;
bool exist=false; //标记是否有重复的数
for(i=0;i<MAXINT;i++){
if(total[i]>1){ //整数i出现次数大于1
exist=true; //存在重复的数
printf("%d:%d ",i,total[i]);
}
}
if(exist==false) //不存在重复的数
printf("no same");
printf("\n");
}

//统计输入数组中各个数字出现的次数
void count(int *a,int n){
int i;
int total[MAXINT]={0}; //记录每个整数出现的次数
for(i=0;i<n;i++)
total[a[i]]++;
output(total);
}

int main(){
int a[MAXINT];
int i,n;
char *addr="gdgzzch.blog.163.com";
printf("本文来自:%s\n",addr);
printf("请输入n:");
scanf("%d",&n);
printf("请输入%d个整数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
count(a,n); //处理
return 1;
}
/*
输入n个整数,统计其中重复数及其个数
输入: 5
1 2 3 4 5
输出: no same
输入: 5
1 2 3 2 1
输出: 1 :2 2:2
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-02
#include"stdio.h"
main()
{
int n,i,j,c,flag=0,a[100];
printf("please input n:\n");
scanf("%d",&n);
printf("please input number:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
c=0;
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])
c++;

}
if(c!=0)
{
printf("%d:%d\n",a[i],c+1);
flag=1;
}
}
if(flag==0)
printf("no same\n");

}本回答被提问者采纳
第2个回答  2008-11-23
#include <iostream.h>

void main()
{
bool isContinue=true;
int n=0,m=1;
cin>>n;
int *p=new int[n];
for (int i=0;i<n;i++)
{
cin>>*(p+i);
}
for (int k=0;k<n;k++)
{
for (int y=0;y<n;y++)
{
for (int c=0;c<k;c++)
{
if (p[c]==p[k])
{
isContinue=false;
}
}
if (!isContinue==true)
{
isContinue=true;
break;
}
if (k==y)
{
continue;
}
if (p[k]==p[y])
{
m++;
}
}
if (m>=2)
{
cout<<p[k]<<":"<<m<<" ";
m=1;
}
}
}