?? 華為筆試編程題1.txt
字號:
#include<stdio.h>
#include<stdlib.h>
#define N 20
int mode(int n){
if((n=n%20)==0)n=20;
return n;
}
//華為筆試編程題1
main(){
int fsecrect,Nsecrect;//初始密碼
int i,j,k,a[N+1],secrect[N+1];
FILE *fp,*fpp;
if((fp=fopen("input01.txt","r"))==NULL){
printf("input file open error!\n");
exit(0);
}
if((fpp=fopen("output02.txt","w"))==NULL){
printf("output file open error!\n");
exit(1);
}
for(i=1;i<=N;i++){
a[i]=1;//在隊列中
fscanf(fp,"%d",&secrect[i]);
}
while(!feof(fp)){
for(i=1;i<=N;i++){
a[i]=1;//在隊列中
}
do{
fscanf(fp,"%d",&fsecrect);
if(fsecrect>0){
fsecrect=mode(fsecrect);
fprintf(fpp,"first secrect=%d : ",fsecrect);
printf("first secrect=%d : ",fsecrect);
break;}
fprintf(fpp,"first secrect=%d is error!\n",fsecrect);
printf("first secrect=%d is error!\n",fsecrect);
}while(fsecrect<=0);
a[fsecrect]=0;//出隊
fprintf(fpp,"%d ",fsecrect);
printf("%d ",fsecrect);
Nsecrect=secrect[fsecrect];
k=fsecrect;
for(j=2;j<N;j++){//出列N-2個人
i=0;
while(i<Nsecrect){
k=mode(k);
if(a[k]==1){
k++;
while(a[k]==0){k++;k=mode(k);}
i++;
}
k++;
}
k=k-1;
k=mode(k);
a[k]=0;
fprintf(fpp,"%d ",k);
printf("%d ",k);
//system("pause");
Nsecrect=secrect[k];
}
for(i=1;i<=N;i++)
if(a[i]==1){fprintf(fpp,"%d",a[i]);
printf("%d",a[i]);
}
fprintf(fpp,"\n");
printf("\n");
}
fclose(fp);
fclose(fpp);
system("pause");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -