训练1:删除序列中相同的数

题目要求:

  有16个数{1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10},已经按由大到小顺序排好,存储在数组a中

  试建立一个类ARR,完成删除数组中相同的数,经过删除后,数组中的内容为{1,2,3,4,5,6,7,8,9,10}.

#include<iostream>
#include<iomanip>
using namespace std;

class ARR
{
        public:
                void ARR_delete();
                ARR();//构造函数的声明不能用void
                void ARR_show();
        private:
                int a[16];

};

ARR::ARR()//不能是void ARR::ARR()
{
        int i;
        for(i = 0;i<16;i++)
        {
                cin>> a[i];
        }
}

void ARR::ARR_delete()
{
        int i,j,temp;
        temp = a[0];
        for(j = 0;j<15;j++)
        {
                temp = a[j];
                for(i = j+1 ;i<16;i++)
                {
                        if(temp == a[i])
                        {
                                a[i]= 0;//这种消除法是比较损耗内存的
                        }
                }
        }
}

void ARR::ARR_show()
{
        int i,j;
        for(i= 0;i<16;i++)
        {
                if(a[i] !=0)
                        cout <<setw(6)<< a[i];

        }
}

int main()
{
        ARR ARR_test;//定义一个对象;
        ARR_test.ARR_delete();
        ARR_test.ARR_show();

        return 0;
}
                                                                                                                                     

总结编写的时候出现的bug

15行出现了返回值什么:错误是因为声明构造函数是void ARR();其实只是ARR就可一了

40行那个也是一样,void ARR::ARR(),其实只需要ARR::ARR();

函数改进的方法:

int main()
{
        /*ARR ARR_test;//定义一个对象;
        ARR_test.ARR_delete();
        ARR_test.ARR_show();*/

        ARR *pt = new ARR;
        pt->ARR_delete();
        pt->ARR_show();
        delete pt;        

        return 0;
}

训练1:删除序列中相同的数

时间: 2024-10-10 05:51:25

训练1:删除序列中相同的数的相关文章

C++程序设计实践指导1.1删除序列中相同的数改写要求实现

改写要求1:改写为以指针为数据结构 #include <iostream> #include <cstdlib> using namespace std; class ARP { int m; int* p; int count[10]; public: ARP(int x[],int size) { m = size; p = new int [m]; for (int i =0;i<m;i++) { p[i]=x[i]; } for (int i =0;i<m;i+

1062 序列中最大的数

1062 序列中最大的数 题目来源: Ural 1079 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 有这样一个序列a: a[0] = 0 a[1] = 1 a[2i] = a[i] a[2i+1] = a[i] + a[i+1] 输入一个数N,求a[0] - a[n]中最大的数. a[0] = 0, a[1] = 1, a[2] = 1, a[3] = 2, a[4] = 1, a[5] = 3, a[6] = 2, a[7] = 3, a[

51nod 1062 序列中最大的数(打表预处理)

1062 序列中最大的数 题目来源: Ural 1079 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 取消关注 有这样一个序列a: a[0] = 0 a[1] = 1 a[2i] = a[i] a[2i+1] = a[i] + a[i+1] 输入一个数N,求a[0] - a[n]中最大的数. a[0] = 0, a[1] = 1, a[2] = 1, a[3] = 2, a[4] = 1, a[5] = 3, a[6] = 2, a[7] =

51Nod 1062 序列中最大的数

1062 序列中最大的数 题目来源: Ural 1079 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 描述 有这样一个序列a: a[0] = 0 a[1] = 1 a[2i] = a[i] a[2i+1] = a[i] + a[i+1] 输入一个数N,求a[0] - a[n]中最大的数. a[0] = 0, a[1] = 1, a[2] = 1, a[3] = 2, a[4] = 1, a[5] = 3, a[6] = 2, a[7] = 3, a[8]

华为OJ在线软件训练题——删除字符串中出现次数最少的字符(中级)

删除字符串中出现次数最少的字符 描述: 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除. 输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序. 题目类别: 字符串 难度: 中级 分数:   运行时间限制: 10 Sec 内存限制: 128 MByte 阶段: 招聘管理 输入: 字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节. 输出: 删除字符串中出现次数最少的字符后的字符串. 样例输入: abcdd 样例输出: dd 对于此类题目,简

删除链表中重复的数

题目: 给定一个排序的链表,将其中重复的数全部删除. 比如:1-->1-->1-->2-->3,则返回2-->3 #include <stdio.h> #include <stdlib.h> typedef struct ListNode { ListNode* next; int val; }; ListNode* rmDumplicateNums(ListNode* head) { ListNode stHead = {0}; ListNode*

51Nod 1062 序列中最大的数 | 简单DP

#include "iostream" #include "cstdio" using namespace std; #define LL long long #define N 100020 int a[N],b[N]; void init() { a[0]=0;a[1]=a[2]=1; b[0]=0;b[1]=b[2]=1; for(int i=3;i<N;i++){ if(i%2) a[i]=a[i/2]+a[i/2+1]; else a[i]=a[i/

顺序统计:寻找序列中第k小的数

最直观的解法,排序之后取下标为k的值即可. 但是此处采取的方法为类似快速排序分块的方法,利用一个支点将序列分为两个子序列(支点左边的值小于支点的值,支点右边大于等于支点的值). 如果支点下标等于k,则支点就是查找的值,如果支点的下标大于k,则在左子序列里继续寻找,如果支点下标小于k,则继续在支点右子序列里面继续寻找第(k-支点下标)小的值. c#实现算法如下: public class FindSpecialOrderElement<T> where T : IComparable<T&

数组-10. 求整数序列中出现次数最多的数

数组-10. 求整数序列中出现次数最多的数(15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 本题要求统计一个整型序列中出现次数最多的整数及其出现次数. 输入格式: 输入在一行中给出序列中整数个数N(0<N<=1000),以及N个整数.数字间以空格分隔. 输出格式: 在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔.题目保证这样的数字是唯一的. 输入样例: 10 3 2 -1 5 3 4 3