第十六周OJ题目
来源:互联网 发布:程序员机械键盘推荐 编辑:程序博客网 时间:2024/06/06 19:37
问题及代码(一)逆序输出数组:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:main.cpp*作 者:黄艳*完成日期:2014年12月15日*版 本 号:v1.0**问题描述:下面的程序,采用指针访问的方式,从键盘给数组a[N]输入n个数据(n小于100),然后对元素值按逆序存放后输出。请补充完整下面的程序。*输入描述:共n+1个整数,先输入n值,再输入n个整数*程序输出:与输入顺序正好相反的n个整数*/#include <iostream>using namespace std;const int N=100;int main(){ int a[N],*p,*q,n; //定义指针变量 cin>>n; for(p=a; p<(a+n); p++) //采用指针访问方式输入数据 cin>>*p; p=a; q=a+n-1; while(p<q) { int r=*p; *p=*q; *q=r; p++; q--; } for(p=a; p<a+n; p++) cout<<*p<<' '; cout<<endl; return 0;}
运行结果:
问题及代码(二)判断是否有相同数字:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:main.cpp*作 者:黄艳*完成日期:2014年12月15日*版 本 号:v1.0**问题描述:输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字。*输入描述:输入两个数组中要存放的元素个数及元素值(不超过50个).*程序输出:有相同数字即输出YES,否则输出NO.*/#include<iostream>using namespace std;bool existthesame(int *a,int n1,int *b,int n2); //自定义函数,判断n1个数据的a数组中和n2个数据的b数组中是否有相同元素int main(){ int a[50]; int b[50]; int i, n1, n2; cin>>n1; for(i=0; i<n1; i++) //读入数据 cin>>a[i]; cin>>n2; for(i=0; i<n2; i++) cin>>b[i]; bool flag=existthesame(a,n1,b,n2); if(flag==true) cout<<"YES\n"; else cout<<"NO\n"; return 0;}bool existthesame(int *a,int n1,int *b,int n2){ int *p,*q; for(p=a; p<(a+n1); p++) //只要有一对相同即返回true { for(q=b; q<(b+n2); q++) if(*p==*q) return true; }}
运行结果:
问题及代码(三)相同的数字:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:main.cpp*作 者:黄艳*完成日期:2014年12月15日*版 本 号: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,j, n1, n2, n3; cin>>n1>>n2; for(i=0; i<n1; i++) //读入数据 { cin>>a[i]; for(j=0; j<i; j++) //判断输入数据是否重复 if(a[i]==a[j]) cin>>a[i]; } for(i=0; i<n2; i++) { cin>>b[i]; for(j=0; j<i; j++) //判断输入数据是否重复 if(a[i]==a[j]) cin>>a[i]; } 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) //自定义函数,判断有多少个相同数字,并将相同数字存入c数组{ int *p,*q,i=0; for(p=a; p<(a+n1); p++) { for(q=b; q<(b+n2); q++) if(*p==*q) { c[i]=*p; i++; } } return i;}
运行结果:
问题及代码(四)指针引出奇数因子:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:main.cpp*作 者:黄艳*完成日期:2014年12月15日*版 本 号:v1.0**问题描述:编写函数 int fun(int x, int *pp)。其功能是,求出x的所有奇数因子,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。若x的值为30,数组中的数为1,3,5,15,函数返回4。*输入描述:输入一个整数。*程序输出:输出奇数因子的个数和奇数因子。*/#include<iostream>using namespace std;int fun(int x,int *pp); //自定义函数声明int main(){ int a[50],x,n; cin>>x; n=fun(x,a); cout<<n<<endl; for(int i=0; i<n; i++) cout<<a[i]<<" "; cout<<endl; return 0;}int fun(int x,int *pp) //求出x的所有奇数因子,并使其从小到大存入a数组{ int i,m=0; for(i=1; i<=x; i++) { if(x%i==0) if(i%2!=0) { pp[m]=i; m++; } } return m;}
运行结果:
0 0
- 第十六周OJ题目
- 第十六周Oj题目学生信息排序
- 第十六周oj题目职工信息结构体
- 第十六周OJ(B)
- 第十六周OJ题目(1)——逆序输出数组
- 第十六周OJ题目(2)——有相同数字?
- 第十六周OJ题目(3)——相同的数字!
- 第十六周OJ题目(4)——指针引出奇数因子
- 第十六周oj题目计算该日是本年的第几天
- 第十六周上机项目(oj)
- 第十六周 OJ(A)
- 第十六周OJ(C)
- 第十六周OJ(D)
- 第十六周OJ(1)
- 第十六周OJ(2)
- 第十六周OJ(3)
- 第十六周OJ(4)
- 第十六周 OJ:Money Problem
- 修改图片尺寸大小
- Cocos2d-x中libcurl库的使用(7)curl_multi API
- tableView滑动删除返回错
- 内存不足的紧急处理方法
- div+css兼容ie6_ie7_ie8_ie9_ie10和FireFox_Chrome等浏览器方法
- 第十六周OJ题目
- 第16周项目--OJ平台相同的数字
- 改变Lable部分颜色,大小
- 设置Win7系统睡眠模式
- 统计学生成绩
- 第16周项目4-为动态数组扩容
- 嵌入式Linux USB WIFI驱动的移植
- Javascript的例外处理的一个实例
- 根据area分析省市