. ... .
C语言课程设计报告
班 级: 电气1004 学 号: 201009334 姓 名: 雷海燕 指导教师: 王果
评语:
2011 年 07 月 18
日
.. wd ..
自动化与电气工程学院 C语言课程设计
1 基本题目 1.1题目
1.1 题目
有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号。
1.2 题目分析
创建一个指针变量,指针变量中的初值为0至16。然后通过for循环将指针变量中所指的值是三的倍数的变量赋值为0,最后找出所要找的值。 1.3 程序
#include
int i,j,k,a[N+1],*p;
for(i=0,p=a;p<=a+N;i++,p++) *p=i; p=a+1; k=N;
for(i=0,j=1;k!=1;j++) {
if(p>(a+N)) p=a+1; if(*p!=0) i++;
if(i%3==0&&i!=0) {
*p=0;i=0;k--; } p++; }
for(i=1;i<=N;i++) if(a[i]!=0)
printf(\最后留下的是%d\\n\return 0; }
1.4流程图
- 1 -
自动化与电气工程学院 C语言课程设计
开始 i=0,p=a N=17 i=0 p<=a+N Y *p=i, i++, p++ N p=a+1, i=0, j=0 k!=1 Y p>a+N N p=a+N Y *p!=0 N i++ Y i%3!=0 Y *p=0,i=0,k-- p++,j++ i<=N Y 输出最后留下的值 i++ 结束 p++,j++ N N N - 1 -