搜索
首页 电脑/网络 互联网

一个C语言编程题目,请高手指点

全部回答

2018-04-05

0 0

    可以参考以下:1。程序分析: 2。
    程序源代码: #definenmax50 main() { inti,k,m,n,num[nmax],*p; printf("pleaseinputthetotalofnumbers:"); scanf("%d",&n); p=num; for(i=0;i *(p+i)=i+1; i=0; k=0; m=0; while(m { if(*(p+i)!=0)k++; if(k==3) {*(p+i)=0; k=0; m++; } i++; if(i==n)i=0; } while(*p==0)p++; printf("%disleft\n",*p); }。

2018-04-05

44 0

    /*在数组内放入1,对1的个数进行计数,每计数到三个1,则输出当前位置。且当前位置清0。一直到所有的数都计数完毕。*/#include<stdio。
    h>void main(){ int a[21]; int n=0,i,sum,subsum=0; printf("enter n:"); /*输入n*/ scanf("%d",&n); sum=n; for(i=1;i<=n;i++) /*初始化*/ a[i]=1; i=0; while(sum>0) { subsum=0; while(subsum<3) /*计数3*/ { i++; if(i>n) i-=n; if(a[i]!=0) { subsum++; } } printf("%d ",i); /*输出当前数*/ a[i]=0; /*清零*/ sum--; }}enter n:3(输入)3 1 2(输出)enter n:10(输入)3 6 9 2 7 1 8 5 10 4(输出)。

2018-04-05

16 0

搞笑的题目,不管n是多少,最后剩下的肯定是1号和2号啦,根本不用算。

2018-04-05

40 0

    很简单,我定义了一个结构来模仿实际的人:#include <stdio。h>#define NUM 10 /*人数*/typedef struct _P{ int id;/*人的序号,也就是做的位置*/ int isOut;/*是否出局,0标识没有,1标识出局*/}P;void main(){ P p[NUM]; int count=0,out=NUM,count1=0; /*初始化*/ for(count=0;count<NUM;count++) { p[count]。
    id=count+1; p[count]。isOut=0; } count=0; /*开始循环踢人*/ while(out!=1)/*当剩下一人停*/ { for(count1=0;count1<3;)/*没有退出的人报数报到3退出*/ { if(p[count]。
    isOut==0)count1++;/*只有没有退出的人可以报数*/ count++; if(count==NUM)count=0;/*检查是不是到尾了,如果是到尾就回到头*/ } count--; if(count<0)count=NUM-1; p[count]。
    isOut=1;/*设置退出的人的退出标识为真*/ printf("%d ",p[count]。id); out--;/*退出的人数减1*/ } /*显示*/ for(count=0;count<NUM;count++) { if(p[count]。
    isOut==0) { printf("the lase person id:%d\n",p[count]。id); break; } }}在NUM为10的情况下的结果:3 6 9 2 7 1 8 5 10 the lase person id:4Press any key to continue。
    。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
互联网
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
反病毒
软件
互联网
互联网
QQ
上网帮助
网站推荐
举报
举报原因(必选):
取消确定举报