c语言报数指针问题
时间: 2023-08-08 20:04:23 浏览: 84
如果您想用指针来实现报数问题,可以尝试以下代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, m;
printf("Enter the number of people: ");
scanf("%d", &n);
printf("Enter the count number: ");
scanf("%d", &m);
int *arr = (int *) malloc(n * sizeof(int));
int i, j, cnt = 0;
for (i = 0; i < n; i++) {
*(arr + i) = i + 1;
}
i = 0;
while (cnt < n) {
j = 1;
while (j < m) {
if (*(arr + i) > 0) {
j++;
}
i = (i + 1) % n;
}
if (*(arr + i) > 0) {
printf("%d ", *(arr + i));
*(arr + i) = 0;
cnt++;
}
i = (i + 1) % n;
}
printf("\n");
free(arr);
return 0;
}
```
该程序中,我们使用了一个动态分配的整数数组,将人的编号存储在其中。然后,我们使用两个变量i和j来模拟报数的过程,其中i表示当前的人的编号,j表示当前的报数。当j等于m时,表示要淘汰当前的人,我们将其编号输出,并将其从数组中删除。直到淘汰了n个人,程序结束。