第七章 数组 上机作业 1. 编写一个函数判断一个整数是否是回文数。如果一个数从正的方向读和从反 的方向读的结果相同,则该数就是回文数。例如:66,676,12321 等。 #include using namespace std; int palin(int k) { int i,j=0, a[10]; while(k>0) { a[j++]=k%10; k=k/10; } for(i=0;i>x; k=palin(x); if(k) //等同于 if(k!=0) cout< using namespace std; int DtoH(int n,int c[]) { int i; for( i=0; n>0; i++) { c[i]=n%16; n/=16; } return i-1; } void main( ) { char h[]="0123456789ABCDEF"; int c[20],n,i; cout<<"请输入一个十进制整数:"; cin>>n; i=DtoH(n,c); for(;i>=0;i--) cout << h[c[i]]; cout << endl; } //以下代码可实现十进制向任意进制的转换 //以下代码可实现十进制向任意进制的转换 #include using namespace std; void hex(int n,int r); void main(){ int n; cout<<"输入一个十进制数:"; cin>>n; hex(n,16);//调用函数将n转换成16进制 } void hex(int n,int r){ //n代表要转换的数,r代表要转换成的进制 int a[10],i=0; while(n>0){ a[i]=n%r; i++; n=n/r; } for(int j=i-1;j>=0;j--) if(a[j]>=10) cout< #include #include #include using namespace std; //#define N 5 const int N=5; void input(int a[],int n);//输入 void show(int a[],int n);//输出 void bubllesort(int a[],int n);//排序 void selectsort(int a[],int n);//排序 void inverse(int a[],int n);// 逆序 int find(int a[],int n,int x);// void swap(int& x,int& y); int main(){ int a[N]; srand(time(0)); input(a,N);//输入 show(a,N);//输出 inverse(a,N);//逆序 show(a,N); // bubllesort(a,N);//排序 selectsort(a,N);//排序 show(a,N);//查找*/ int x; cout<<"输入要查找的数:"; cin>>x; // } void swap(int& x,int &y){//by address find(a,N,x); binaryfind(a,N,x); 查找 int binaryfind(int a[],int n,int x);// 查找 int t=x;x=y;y=t; } void input(int a[],int n){//输入 for(int i=0;ia[j+1]){ swap(a[j],a[j+1]); } } } } void selectsort(int a[],int n){//排序 int i,j,min; for(i=0;ia[min]) min=j; } if(min!=i) swap(a[min],a[i]); } } void inverse(int a[],int n){// 逆序 int i,j; for(i=0,j=n-1;i #include #include #include using namespace std; int count(int a[],int n,int& odd); //通过引用odd返回奇数个数,通过返回值返回偶数的个数 void main() { int n,i,a[100]; cout<<"数组元素的个数n: "<>n; srand(time(0)); for(i=0;i //using namespace std; //#include // //int oddnum=0,evennum=0; //void main() //{ // // // // // // // // // // // // // // // // // } else evennum++; int n,i,a[100]; cout<<"Enter n:"<>n; cout<<"input array a:"<>a[i]; cout<<"Array a is:"< #include #include #include using namespace std; bool IsRepeat(int a[],int n,int x);//判断x是否与数组a中的数据相同 int *SameNum(int a[],int b[],int n,int &num);//判断a和b中有几个数据相同,并返回这些相同 的数 void main() { srand(time(0)); int nums[6]={0}; int i,j; bool repeat=false; nums[0]=1+rand()%32; for( i=1;i<6;i++){ do{//保证随机产生的数与前面的数不同 nums[i]=1+rand()%32; repeat=IsRepeat(nums,i,nums[i]); }while(repeat==true); } int inputs[6]={0}; int n=0; for( i=0;i<6;i++){ do{//保证输入的数与前面的数不同 do{//保证输入的数在1~32之间 cout<<"enter a different integer 1~32: "; cin>>inputs[i]; }while(inputs[i]<1||inputs[i]>32); repeat=IsRepeat(inputs,i,inputs[i]); }