//15、有17个人围成一圈(编号为1-17),从第1号开始进行1、2、3报数,凡报3者退出, //下一个人又从1开始报数..........直到最后一个人时为止。请问此人原来的位置是多少号? #include<stdio.h> int main() { int p[18]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}; int i=1,j=1,k=1,m=17; do { if(p[i]) { if(j++>=3)//报1个数 { p[i]=0; j=1; m--; } else k=i; if(m<=1)break; } if(i>=17)//如果是最后一个元素,下一个元素就是p[1] i=1; else//否则就是p[i+1] i++; }while(1);//不停地循环,直到需要停止 printf("%d\n",k); return 0; }
//16、有一行文字,要求删去其中某个字符。此行文字和要删除的字符均由键盘输入 /*#include<stdio.h> int main() { char str1[100],str2[100]; char ch; int i=0,k=0; printf("\nplease input a phase\n"); while((str1[i]=getchar())!=‘\n‘)//给str1数组赋值 i++; str1[i]=‘\0‘;//在字符串的最后加一个‘\0‘作为结束标志 printf("\nDelete?"); scanf("%1s",&ch); for(i=0;str1[i]!=‘\0‘;i++) { if(str1[i]!=ch) str2[i-k]=str1[i]; else k=k+1; } str2[i-k]=‘\0‘; printf("\n%s\n",str2); return 0; } */ /*#include<stdio.h> int main() { char a[10]; char b; int i,j; printf("please enter chars:"); gets(a); printf("please enter delete char:"); b=getchar(); for(i=0;i<10;i++) {if(a[i]==b) for(j=i;j<10;j++) { a[j]=a[j+1]; } } printf("%s\n",a); return 0; } */
时间: 2024-10-16 15:44:48