#include<iostream>
#include<vector>
#include<stack>
#include<cstdlib>
#include<ctime>
using namespace std;
/************************************************************
*
*题七
*
*************************************************************/
void array_iterate(int len, int input_array[], int m, int output_array[])
{
vector<int> vec;
int pos=0;
for(int i=0;i<len;i++)
{
vec.push_back(input_array[i]);
}
for(int i=0;vec.size()>0 && i<len;i++)
{
pos=(pos+m)%vec.size();
output_array[len-1-i]=vec[pos];
m=vec[pos];
vec.erase(vec.begin()+pos);
}
}
/************************************************************
*
*题八
*
*************************************************************/
int calculate(int len,char *expStr)
{
stack<int> optrStack;
stack<int> opndStack;
int a1=0,a2=0;
while(*expStr !='\0')
{
//number
if((*expStr-'0') >=0 && (*expStr-'0')<=9)
{
opndStack.push((*expStr++)-'0');
}
else // + - * /
{
optrStack.push(*expStr++);
if(optrStack.top() =='*')
{
a1=opndStack.top();
a2= (*expStr++)-'0';
opndStack.pop();
optrStack.pop();
opndStack.push(a1*a2);
}
else if(optrStack.top() =='/')
{
a1=opndStack.top();
a2= (*expStr++)-'0';
opndStack.pop();
optrStack.pop();
opndStack.push(a1/a2);
}
}
}
while(!optrStack.empty())
{
a2=opndStack.top();
opndStack.pop();
a1= opndStack.top();
opndStack.pop();
if(optrStack.top()=='+')
{
optrStack.pop();
opndStack.push(a1+a2);
}
else//only -
{
optrStack.pop();
opndStack.push(a1-a2);
}
}
return opndStack.top();
}
/************************************************************
*
*题九
*
*************************************************************/
#define A 1
#define J 11
#define Q 12
#define K 13
void judgePork()
{
int *arr=new int[5];
srand(time(NULL));
for(int i=0;i<5;i++)
{
arr[i]=rand()%13;
cout<<arr[i]<<" ";
}
cout<<"\n";
}
int main()
{
//测试 题七
{
//int a[]={3,1,2,4};
//int b[4];
//memset(b,0,4*sizeof(int));
//array_iterate(4, a, 7,b);
//printf("%d,%d,%d,%d\n",b[0],b[1],b[2],b[3]);
//printf("------------------------------------\n");
//array_iterate_2(4, a, 7,b);
//printf("%d,%d,%d,%d\n",b[0],b[1],b[2],b[3]);
}
//测试 题八
{
////char *expStr = "1+4*5-8/3";
//char *expStr = "8/3*3";
//int len=strlen(expStr);
////calculate(len,expStr);
//printf("%s = %d\n",expStr,calculate(len,expStr));
}
//测试 题九
{
judgePork();
}
system("pause");
}