第十六周OJ项目三相同的数字

来源:互联网 发布:德邦物流数据分析员 编辑:程序博客网 时间:2024/04/27 15:41

问题及代码:

/*  * Copyright (c) 2014, 烟台大学计算机与控制工程学院  * All rights reserved.  * 文件名称:test.cpp  * 作    者:郝俊宇   * 完成日期:2014年 12 月 10 日  * 版 本 号:v1.0  *  * 问题描述:输出两个有序数列(不超过50个)中有多少相同数据,并输出这些数据。 * 输入描述:第一行输入这两组数的个数(不超过50个)。后面两行分别输入这两组数。同一序列中的数字不会重复。 * 程序输出:第一行输出相同数字的个数,第二行输出这些相同的数字。若没有相同的数字,输出NULL */ #include <iostream>using namespace std;int sameNum(int *a,int n1,int *b,int n2, int *c);int main(){    int a[50];    int b[50];    int c[50];    int i, n1, n2, n3,j,k;    cin>>n1>>n2;    for(j=0; j<n1; j++)        cin>>*(a+j);    for(k=0; k<n2; k++)        cin>>*(b+k);    n3 = sameNum(a,n1,b,n2,c);    if(n3==0)        cout<<"NULL\n";    else    {        cout<<n3<<endl;        for(i=0; i<n3; i++)            cout<<c[i]<<" ";        cout<<endl;    }    return 0;}int sameNum(int *a,int n1,int *b,int n2, int *c){    int e,f,g=0;    for(e=0; e<n1; e++)    {        for(f=0; f<n2; f++)        {            if(*(a+e)==*(b+f))            {                *(c+g)=*(a+e);                g++;            }        }    }    return g;}

运行结果:


知识点总结:

数组和指针的应用

学习心得:

开始写这个程序时挺顺畅的,可是到了要输出相同的数字时就不知道要怎么写了,想了好长时间,也没想出来,就找同学帮忙了,等同学告诉我之后,我才发现原来挺简单的,让我自己给想复杂了。


0 0
原创粉丝点击