C++怎么样才能将输入的10个数输出其中不同的数
答案:3 悬赏:80 手机版
解决时间 2021-12-29 06:05
- 提问者网友:战皆罪
- 2021-12-29 01:02
C++怎么样才能将输入的10个数输出其中不同的数
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-12-29 01:11
解决思路如下:
1 首先统计各个数出现的频率
2 以频率最高的数为基准,将其他数输出
示例代码如下:
void findDiff(int* a,int nlen)
{
int* count = new int[nlen+nlen];
if(count==NULL)return;
memset(count,0,sizeof(int)*nlen*2;
int ntotal = 0;
for(int i=0;i<nlen;i++)
{//遍历a数组 进行统计
for(int j=0;j<ntotal;j++)
{
if(count[j]==a[i]){//已经出现过的数据
count[j+nlen]++;//计数增加
break;
}
}
if(j>=ntotal){//发现一个新的数据了
count[j] = a[i];
ntotal++;
}
}
//ntatal现在记录的是有多少种数据
int max=0,nindex=0;
for(int i=0;i<ntotal;i++)
{
if(max<count[i+nlen]){//找到一个大的
max = count[i+nlen];
nindex = i;
}
}
//现在nindex记录的是出现最多的那个数,输出其他数
for(int i=0;i<ntotal;i++)
{
if(i==nindex)continue;//跳过这个最多次出现的数
printf("%d\n",count[i]);
}
}
1 首先统计各个数出现的频率
2 以频率最高的数为基准,将其他数输出
示例代码如下:
void findDiff(int* a,int nlen)
{
int* count = new int[nlen+nlen];
if(count==NULL)return;
memset(count,0,sizeof(int)*nlen*2;
int ntotal = 0;
for(int i=0;i<nlen;i++)
{//遍历a数组 进行统计
for(int j=0;j<ntotal;j++)
{
if(count[j]==a[i]){//已经出现过的数据
count[j+nlen]++;//计数增加
break;
}
}
if(j>=ntotal){//发现一个新的数据了
count[j] = a[i];
ntotal++;
}
}
//ntatal现在记录的是有多少种数据
int max=0,nindex=0;
for(int i=0;i<ntotal;i++)
{
if(max<count[i+nlen]){//找到一个大的
max = count[i+nlen];
nindex = i;
}
}
//现在nindex记录的是出现最多的那个数,输出其他数
for(int i=0;i<ntotal;i++)
{
if(i==nindex)continue;//跳过这个最多次出现的数
printf("%d\n",count[i]);
}
}
全部回答
- 1楼网友:杯酒困英雄
- 2021-12-29 01:34
首先你把输入的数放入数组a[]中
for( i = 0; i < 10 ; i ++)
{
for(j = i +1; j < 10 ;j++)
{
if(a[i] == a[j])
{cout << a[i] ;}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯