1.请用指针实现程序:n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下来的是原来的第几号的那位。
#include<stdio.h>
int main()
{
int i,n,a[100],count,* p,out;
scanf("%d",&n);
for(i=0;i<n;i++)
a[i]=i+1; //从1到n给每个人编号
i=0;
count=0;
out=0;
p=a;
while(out<n-1) //循环直到只剩下一个人
{
if(*(p+i)!=0)
count++;
if(count==3) //当报数到3的时候,把退出的人的序号标为0
{
*(p+i)=0;
count=0;
out++;
}
i++;
if(i==n)
i=0;
}
while(*p==0) //最后一个有编号的就是留下来的
p++;
printf("最后留下来的是第%d号\n",*p);
return 0;
}
2.输入10个整数,将其中最小的数与第1个数对换,把最大