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个数对换,把最大的数与最后一个数对换。

本文介绍了四个使用指针的编程题目,包括在循环中剔除特定条件的元素、数组元素交换、字符串排序以及整数排序。这些题目旨在锻炼读者对指针的运用能力,简化复杂的逻辑操作。
最低0.47元/天 解锁文章
2634

被折叠的 条评论
为什么被折叠?



