解题思路:
双层循环,实现计数123123123;三个一次循环。
利用取模i%n;
注意事项:
注意要让数组长度及时减去1
参考代码:
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int n;
scanf("%d",&n);
int *p;
p=(int*)malloc(n*sizeof(int));
int i;
for(i=0;i<n;i++){
p[i]=i+1;
}
int count = -1;
while(n!=1){
for(i=1;i<=3;i++){
count=(count+1)%n;//count是数组的下标
}
int j;
for(j=count+1;j<n;j++){
p[j-1]=p[j];
}
n--;//总人数减去1
count--; //去掉一个数后报数下标也要往前移一次
}
printf("%d",p[0]);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.7 (C++代码)浏览:879 |
上车人数 (C语言代码)浏览:816 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:548 |
P1000 (C语言代码)浏览:911 |
C二级辅导-统计字符 (C语言代码)浏览:514 |
哥德巴赫曾猜测 (C语言代码)浏览:778 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:607 |
删除数组中的0元素 (C语言代码)浏览:2143 |
C语言程序设计教程(第三版)课后习题7.3 (C++代码)浏览:483 |
C语言训练-求矩阵的两对角线上的元素之和 (C语言代码)浏览:1015 |