注意事项:除了内存有点大,好像没别的问题
参考代码:
#include<stdio.h> int main() { int n,a[1000000]={0},cnt=0,i; scanf("%d",&n); for(i=0;i<n;i++){ a[i]=i+1; }//把每个学生进行排序 int sum=n; while(sum>1){ //当圈内只剩下一名学生,退出循环 for(i=0;i<n;i++){ if(a[i]!=0){ cnt++;//报数 if(cnt==3){ a[i]=0;//当报到三,该学生序号归零 cnt=0; sum--;//圈内学生减一 } } } } for(i=0;i<n;i++){ //遍历数组,将学生序号输出 if(a[i]!=0){ printf("%d\n",i+1); } } return 0; }
0.0分
1 人评分
【计算两点间的距离】 (C语言代码)浏览:883 |
小明A+B (C语言代码)浏览:1256 |
printf基础练习2 (有点不明白)浏览:844 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:661 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:787 |
幸运数 (C++代码)浏览:1264 |
1035 题解浏览:785 |
C语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:766 |
小O的数字 (C++代码)浏览:763 |
回文数(一) (C语言代码)浏览:1118 |