A
下面的程序,采用指针访问的方式,从键盘给数组a[N]输入n个数据(n小于100),然后对元素值按逆序存放后输出。/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved .
*文件名称:test .cpp
*作 者:曹莉萍
*完成日期:2014 年12月10日
*版 本 号:v1.0
*
*输入描述:共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;
}
B 输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字。
/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved .
*文件名称:test .cpp
*作 者:曹莉萍
*完成日期:2014 年12月10日
*版 本 号:v1.0
*
*输入描述:共有两组数。每组数包括:这组数的个数n,以及这n个数字。(n<=50)
*程序输出:当两组数中有相同数字时,输出YES,否则,输出NO
*/
#include<iostream>
using namespace std;
bool existthesame(int *a,int n1,int *b,int n2);
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 i,j;
for (i=0;i<n1;i++)
for (j=0;j<n2;j++)
{
if (*(a+i)==*(b+i))
return true;
else
continue;
}
}
C 输出两个有序数列(不超过50个)中有多少相同数据,并输出这些数据。
/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved .
*文件名称:test .cpp
*作 者:曹莉萍
*完成日期:2014 年12月10日
*版 本 号:v1.0
*
*输入描述:第一行输入这两组数的个数(不超过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;
cin>>n1;
cin>>n2;
for (i=0;i<n1;i++)
cin>>a[i];
for (i=0;i<n2;i++)
cin>>b[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)
{
int i,j,n=0;
for (i=0;i<n1;i++)
for (j=0;j<n2;j++)
{
if (*(a+i)==*(b+j))
{
*(c+n)=*(a+i);
n++;
continue;
}
else
continue;
}
return n;
}
D 编写函数 int fun(int x, int *pp)。其功能是,求出x的所有奇数因子,并按照从小到大的顺序放在pp指向的内存中,函数返回值为这些整数的个数。若x的值为30,数组中的数为1,3,5,15,函数返回4
/*
*Copyright (c) 2014,烟台大学计算机学院
*All rights reserved .
*文件名称:test .cpp
*作 者:曹莉萍
*完成日期:2014 年12月10日
*版 本 号:v1.0
*
*输入描述:一个整数
*程序输出:输入的整数的奇因子个数,以及这些奇因子
*/
#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)
{
int i,m=0;
for (i=1;i<x;i+=2)
{
if (x%i==0)
{
pp[m]=i;
m++;
}
}
return m;
}