C++

来源:百度文库 编辑:神马文学网 时间:2024/04/27 19:06:06
#include "stdafx.h"
#include
void moveArray(int *p,int n,int m);  //moveArray函数
void remainded(int s[],int n);
int  judgeOne(int s[],int n);
int getNext(int s[],int n,int m);
int main(int argc, char* argv[]) //主函数
{
printf("Hello World!\n");
int a[5]={1,2,3,4};   //初始化
//moveArray(a,5,2);    //调用移动函数
//for(int i=0;i<5;i++)   //输出这个数组的n个元素
// cout<<*(a+i)<<" ";
//cout<//作业10.5
//
//cout<<"KJ;L"<remainded(a,4);
for(int i=0;i<4;i++){
cout<}
return 0;
}
/**************moveArray函数******************/
//p:为整形数成组
//n:为囊型数组的长度
//m:为指定的顺序后移的次数
/*********************************************/
void moveArray(int * p,int n,int m){
for(int i=0;i{
int temp;
temp=*(p+n-1);     //最后一个数取出
for(int j=n-1;j>=1;j--)   //前n-1个数后移
{
*(p+j)=*(p+j-1);
}
*(p)=temp;      //把最后一个数放在数组的开头
}
}
void remainded(int s[],int n){
int count=0,previous=0;
int position=0,next;
while(true)
{
if(judgeOne(s,n)) break;
position=getNext(s,n,s[position]);
next=position;
if(position==-1) break;
count++;
if(count==3) {
s[position]=0;
count=0;
position=next;
}
}
}
int  judgeOne(int s[],int n){
int sum=0;
for(int i=0;iif(s[i]!=0)  sum++;
}
if(sum==1) return 1;
else return 0;
}
int getNext(int s[],int n,int m){
int next=-1;
for(int i=0;iif(s[i]==m) break;
}
//cout<<"i="<for(int j=i+1;j{
if(s[j]!=0) {
next=j;
break;
}
}
for(int k=0;kif(s[k]!=0) {
next=k;
break;
}
}
return next;
}