7-28 猴子选大王 (20分)

https://pintia.cn/problem-sets/14/problems/808

题意:n个猴子围成圈,从1到3循环报数,为3就退出直到只剩最后一个猴子,输出该猴子初序;

思路:模拟题,数组存储,对数组1~3循环编号,同时k从1递增,逢4变1,数组编号逢3变0,同时计数值count--,直到count==1退出while循环,输出该值初序;

代码:

#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
	int array[1010]={0};
	int n,i;
	int k=1;
	cin>>n;
	int count=n;
	for(i=1;i<=n;i++) array[i]=i;
	while(count>1)
	{
       for(i=1;i<=n;i++)
       {
       	  if(array[i]!=0){
       	  	   array[i]=k;
       	  	   k++;
			}
		  if(k==4) k=1;
		  if(array[i]==3)
		  {
		  	array[i]=0;
		  	count--;
		  }
	   }
	}
	for(i=1;i<=n;i++)
	{
		if(array[i]!=0) cout<<i<<endl;
	}
	return 0;
}

7-30 字符串的冒泡排序 (20分) 

https://pintia.cn/problem-sets/14/problems/810

代码:

#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
	int n,k;
	char chr[110][13];
	char chr2[13];
	//string chr[110];
	int i,j;
	cin>>n>>k;
	for(i=0;i<n;i++) cin>>chr[i];
	for(i=0;i<k;i++)
	{
		for(j=0;j<n-1;j++)
		{
			if(strcmp(chr[j],chr[j+1])>0)
			{
				strcpy(chr2,chr[j]);
				strcpy(chr[j],chr[j+1]);
				strcpy(chr[j+1],chr2);
			}
		}
	}
	for(i=0;i<n;i++) cout<<chr[i]<<endl;
	return 0;
}

  

12-15 13:34