| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1020 人关注过本帖
标题:统计次数
只看楼主 加入收藏
m3440426898
Rank: 2
等 级:论坛游民
帖 子:41
专家分:17
注 册:2022-2-3
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:7 
统计次数
//就是想不按顺序输入一组数,然后统计这些数出现的次数,能不能帮我改一下下,运行结果是10,就一个10,不要重写太大改动。谢谢了!
#include <iostream>//程序效果:统计输入的数的次数。
using namespace std;
int main()
{
    int a[10];
    int i,j,b=0,c;
    for(i=0;i<=9;i++)//输入十个元素至数组。
        cin>>a[i];
    for(i=0,b=1;i<=8+1-b;i++)//外循环,固定要比较的值。
    {
        for(j=i+1,c=j;j<=9+1-b;)//内循环,让与之比较的值变化。
        {
            if(a[i]=a[j])//实质上比较i和i++,但i++永远是i的下一个,
            {            //有可能变成第三个,所以用j。
                for(;c<=9-b;c++)//如果它们相等,则数组元素都往前复制,我想的是把数组元素变少。
                    a[c]=a[c+1];//最后一个不予比较。
                b++;//计数,如果相等则加一。
            }
            else
                j++;//不等则j++,没有把它放在for里。
        }
            cout<<b<<endl;
    }
}
搜索更多相关主题的帖子: for 统计 比较 i++ 次数 
2022-07-10 12:15
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1479
专家分:9035
注 册:2010-3-16
收藏
得分:10 
程序代码:
#include <iostream>
using namespace std;
int main()
{
    int a[10][2];
    int i,j,b=0,c;
    for(i=0;i<10;i++)
    {
        cin>>a[i][0];
        a[i][1]=1;
    }
    int n=10;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)//内循环,让与之比较的值变化。
        {
            if(a[i][0]==a[j][0])
            {
                for(c=j;c<n-1;c++)//如果它们相等,则数组元素都往前复制,我想的是把数组元素变少。
                {
                    a[c][0]=a[c+1][0];//最后一个不予比较。
                    a[c][1]=a[c+1][1];
                }
                    
               a[i][1]++;
               n--;
               i--;
            }
        }
    }
    
    for(i=0;i<n;i++)
        cout << a[i][0] << " " << a[i][1] << endl;
   
}
2022-07-10 14:35
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
没听懂需求是什么,为什么不肯直接说出来呢
2022-07-10 17:33
m3440426898
Rank: 2
等 级:论坛游民
帖 子:41
专家分:17
注 册:2022-2-3
收藏
得分:0 
回复 3楼 rjsp
就是输入一组数,求每个数重复了多少次。不按顺序输入。例如输入1,2,3,4,1,2,3,4,1,2,应该输出3,3,2,2。1重复3次,2重复三次,3重复2次,4重复2次。
2022-07-11 10:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
输入1,2,3,4,1,2,3,4,1,2,应该输出3,3,2,2。1重复3次,2重复三次,3重复2次,4重复2次。
举例时尽量不要举特例!
1、2、3、4 既是字典顺序,又是你的输入顺序,那我不知道在字典顺序与你的输入顺序不一致的情况下,按哪个顺序输出?
比如 { 3 1 2 4 1 2 3 4 1 2 },是输出 { 2, 3, 3, 2 } 还是 { 3, 3, 2, 2 } ?
2022-07-11 14:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
我根据 apull 的输出结果,假定你需要的输出顺序为输入的先后顺序

程序代码:
#include <iostream>
#include <iterator>
#include <type_traits>
#include <algorithm>
using namespace std;

int main( void )
{
    int a[10];

    using Type = std::remove_cvref_t<decltype(*begin(a))>; // 从a的定义中,获取其元素类型,即 int
    const size_t Size = std::size(a); // 从a的定义中,获取其元素数量,即 10
    copy_n( istream_iterator<Type>(cin), Size, begin(a) ); // 从cin获取10个int值填充入a

    for( auto itor=begin(a); itor!=end(a); ++itor )
    {
        if( find(begin(a),itor,*itor) == itor ) // 若 当前数在之前的序列中未出现过
            cout << count(itor,end(a),*itor) << '\n'; // 则 输出当前数在之后的序列中的数量
    }
}


输入 3 1 2 4 1 2 3 4 1 2
输出 2 3 3 2

如果某天你觉得 int a[10] 不符合你的需求了,那你可以随便改这个a的定义。
比如你觉得数组不适合,更喜欢链表,你可以改为 list<int> a( 10, 0 );
比如你觉得int不适合,更喜欢double,你可以改为 list<double> a( 10, 0 );
比如你觉得10不适合,更喜欢250,你可以改为 list<double> a( 250, 0 );
以上的一切修改,都不需要更改后面的代码。
2022-07-11 14:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
如果你这是作业题,写完即扔,那就不需要完美,用最简陋的方法

程序代码:
#include <iostream>
#include <iterator>
#include <algorithm>
using namespace std;

int main( void )
{
    int a[10];
    copy_n( istream_iterator<int>(cin), 10, a ); // 从cin获取10个int值填充入a
    for( size_t i=0; i!=10; ++i )
    {
        if( find(a,a+i,a[i]) == a+i ) // 若 当前数在之前的序列中未出现过
            cout << count(a+i,a+10,a[i]) << '\n'; // 则 输出当前数在之后的序列中的数量
    }
}
2022-07-11 14:45
m3440426898
Rank: 2
等 级:论坛游民
帖 子:41
专家分:17
注 册:2022-2-3
收藏
得分:0 
回复 7楼 rjsp
嗯嗯,谢谢谢谢,虽然下面这两个头文件我都不认识
2022-07-12 08:50
快速回复:统计次数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029976 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved