一个二维数组a[5][5]= {{1,3,4,5,6},{3,9,1,1,7},{2,2,4,5,3},{3,5,5,3,4},{2,5,5,3,4}},计算重复数据及个二维数组没有排序用C++实现,实现结果为:数字:1 重复:3数字:2 重复:3数字:3 重复:6数字:5 重复
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 12:08:31
![一个二维数组a[5][5]= {{1,3,4,5,6},{3,9,1,1,7},{2,2,4,5,3},{3,5,5,3,4},{2,5,5,3,4}},计算重复数据及个二维数组没有排序用C++实现,实现结果为:数字:1 重复:3数字:2 重复:3数字:3 重复:6数字:5 重复](/uploads/image/z/1378371-3-1.jpg?t=%E4%B8%80%E4%B8%AA%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84a%5B5%5D%5B5%5D%3D+%7B%7B1%2C3%2C4%2C5%2C6%7D%2C%7B3%2C9%2C1%2C1%2C7%7D%2C%7B2%2C2%2C4%2C5%2C3%7D%2C%7B3%2C5%2C5%2C3%2C4%7D%2C%7B2%2C5%2C5%2C3%2C4%7D%7D%2C%E8%AE%A1%E7%AE%97%E9%87%8D%E5%A4%8D%E6%95%B0%E6%8D%AE%E5%8F%8A%E4%B8%AA%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E6%B2%A1%E6%9C%89%E6%8E%92%E5%BA%8F%E7%94%A8C%2B%2B%E5%AE%9E%E7%8E%B0%2C%E5%AE%9E%E7%8E%B0%E7%BB%93%E6%9E%9C%E4%B8%BA%EF%BC%9A%E6%95%B0%E5%AD%97%EF%BC%9A1+%E9%87%8D%E5%A4%8D%EF%BC%9A3%E6%95%B0%E5%AD%97%EF%BC%9A2+%E9%87%8D%E5%A4%8D%EF%BC%9A3%E6%95%B0%E5%AD%97%EF%BC%9A3+%E9%87%8D%E5%A4%8D%EF%BC%9A6%E6%95%B0%E5%AD%97%EF%BC%9A5+%E9%87%8D%E5%A4%8D)
一个二维数组a[5][5]= {{1,3,4,5,6},{3,9,1,1,7},{2,2,4,5,3},{3,5,5,3,4},{2,5,5,3,4}},计算重复数据及个二维数组没有排序用C++实现,实现结果为:数字:1 重复:3数字:2 重复:3数字:3 重复:6数字:5 重复
一个二维数组a[5][5]= {{1,3,4,5,6},{3,9,1,1,7},{2,2,4,5,3},{3,5,5,3,4},{2,5,5,3,4}},计算重复数据及个
二维数组没有排序
用C++实现,实现结果为:
数字:1 重复:3
数字:2 重复:3
数字:3 重复:6
数字:5 重复:6
等等
要写出程序
一个二维数组a[5][5]= {{1,3,4,5,6},{3,9,1,1,7},{2,2,4,5,3},{3,5,5,3,4},{2,5,5,3,4}},计算重复数据及个二维数组没有排序用C++实现,实现结果为:数字:1 重复:3数字:2 重复:3数字:3 重复:6数字:5 重复
有一个最简单最不伤脑子的做法:
因为里面都是个位数故在0-9之间
int a[5][5]= {{1,3,4,5,6},{3,9,1,1,7},{2,2,4,5,3},{3,5,5,3,4},{2,5,5,3,4}};
int mark_array[10] = {0};//存储重复数据 下标代表这个数据 里面的值代表重复的次数
int mark_i = 0 ;//下标
for ( int vaule = 0 ;vaule < 10; vaule++ )
{
for ( int i = 0 ; i < 5 ; i++ )
{
for ( int j = 0 ; j < 5 ;j++ )
{
if ( a[i][j] == vaule )
{
mark_array[mark_i]++;
}
}
mark_i++;
}
}
很简单的小程序,自已动动脑筋就出来了;
关键是怎样存放计数值的问题;如果数字有范围就简单,没范围就复杂点,例如:
有一个数字是1亿,就麻烦些;
另外用一个标志数组,为方便程序,可以用数据值代表下标,但是该标志数组元素个数就需要按待统计数组的最大值域了。
该标志数组所有元素全部初始化为0,然后从该数组第一个元素开始,一趟扫描所有元素,是几就往该标志数组的几下标加上1,扫描完后将该标志数组从头开始,为0的就不管,不为0的就输出
或者:
用二维数组,也可以是结构体,分别用两个分量代表数据值和出现的频度,此时不需要像刚才的...
全部展开
另外用一个标志数组,为方便程序,可以用数据值代表下标,但是该标志数组元素个数就需要按待统计数组的最大值域了。
该标志数组所有元素全部初始化为0,然后从该数组第一个元素开始,一趟扫描所有元素,是几就往该标志数组的几下标加上1,扫描完后将该标志数组从头开始,为0的就不管,不为0的就输出
或者:
用二维数组,也可以是结构体,分别用两个分量代表数据值和出现的频度,此时不需要像刚才的方法一样,但是每一个值来后需要查找是否已经存在,有就加频度1,没有就增加一项,频度为1
收起