收藏 分销(赏)

湘潭大学c语言撑血设计实践.doc

上传人:pc****0 文档编号:6766090 上传时间:2024-12-21 格式:DOC 页数:7 大小:28.43KB 下载积分:10 金币
下载 相关 举报
湘潭大学c语言撑血设计实践.doc_第1页
第1页 / 共7页
湘潭大学c语言撑血设计实践.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
1.john的农场 #include<stdio.h> #define N 20 int main() { int a[N+1][N+1]; int n,m,i,j,min,k,l,q,sum; int w,minx,max; scanf("%d",&n); while(n--) { int b[N+1]={0}; scanf("%d",&m); for(i=1;i<=m;i++) for(j=1;j<=m;j++) scanf("%d",&a[i][j]); sum=0;q=m-1;w=1; while(q) { min=99999; for(i=1;i<m;i++) for(j=i+1;j<=m;j++) { if(a[i][j]==0) continue; else { if(min>a[i][j]) { min=a[i][j]; k=i; l=j; } } } if(b[k]==0&&b[l]==0) {b[k]=w;b[l]=w;w++; sum=sum+min;a[k][l]=0;q--; } else if(b[k]==0||b[l]==0) {if(b[k]==0) b[k]=b[l]; if(b[l]==0) b[l]=b[k]; sum=sum+min;a[k][l]=0;q--; } else if(b[k]==b[l]) a[k][l]=0; else { minx=b[k];max=b[k]; if(b[l]<b[k]) minx=b[l]; else max=b[l]; for(i=1;i<=m;i++) if(b[i]==max) b[i]=minx; sum=sum+min;a[k][l]=0;q--; } } printf("%d\n",sum); } return 0; } 2.xtu方阵 #include<stdio.h> int main() { int n,i,j,s=0; while(1) { scanf("%d",&n); if(n==0) break; s++; printf("Case %d:\n",s); for(i=0;i<3*n;i++) { for(j=0;j<n;j++) { printf("XTU"); } printf("\n"); } printf("\n"); } return 0; } 3.z字型 #include<stdio.h> #include<string.h> #include<math.h> int main() { char a[10][10],b[100]; int i,j,l,n,k; double s; while(scanf("%s",b)!=-1) { s=strlen(b); s=sqrt(s); n=int(s); l=0; for(i=0;i<n;i++) { if(i%2==0) for(j=0;j<i+1;j++) a[i-j][j]=b[l++]; else for(j=0;j<i+1;j++) a[j][i-j]=b[l++]; } for(i=n-2,k=n;i>=0;i--,k++) { if(i%2==0) for(j=0;j<i+1;j++) a[n-1-j][k-n+1+j]=b[l++]; else for(j=0;j<i+1;j++) a[k-n+1+j][n-1-j]=b[l++]; } for(i=0;i<s;i++) { for(j=0;j<s;j++) printf("%c",a[i][j]); printf("\n"); } printf("\n"); } return 0; } 4. #include <stdio.h> int main() { int k,i,j,x,y; char a[5],b[5]; while(1) { scanf("%s",a); if(a[0]=='0') break; scanf("%d",&k); while(k--) { scanf("%s",b); x=0;y=0; for(i=0;i<4;i++) if(a[i]==b[i]) x++; for(i=0;i<4;i++) { for(j=0;j<4;j++) if(a[i]==b[j]) y++; } if(k!=0) printf("%dA%dB ",x,y-x); else printf("%dA%dB\n",x,y-x); } } return 0; } 5.成对的字符串 #include<stdio.h> #define N 1000 int main() { char a[N+1]; int s,x,n,i=1; char *p,*q,m; scanf("%d",&s); while(s) { n=1; if((s--)==0) break; scanf("%s",a); p=a; while(*p) { if(*p=='*') { p++; continue; } q=p; m=*q; i=1; x=0; while(*q&&(*q)!='*') { q++; if(m==*q) { i++; if(x==0) *q='*'; x++; } } if(i%2!=0) { n=0; break; } p++; } if(n==0) printf("No\n"); else printf("Yes\n"); } return 0; } 6.合法的整数 #include<stdio.h> #include<string.h> #define N 100 char a[N]; int fun() { int len,jia,jian,i,j,t,k; len = strlen(a); jia = jian = 0; for(i=0;i<len;i++) if(a[i]!=' ' && a[i]!='-' && a[i]!='+' && !(a[i]>='0'&&a[i]<='9')) return 0; for(i=0;i<len;i++) { if(a[i]=='+') jia++; if(a[i]=='-') jian++; } if(jia+jian>1) return 0; t=-1; for(i=0;i<len;i++) if(a[i]!=' ') { t=i;break; } if(t==-1) return 0; k=t; if(a[t]=='+' || a[t]=='-') { for(i=t+1;i<len;i++) if(a[i]!=' ') { k=i;break; } if(k==t) return 0; } if(k==t && jia+jian>=1) return 0; if(a[k]=='0') { for(i=k+1;i<len;i++) if(a[i]!=' ') return 0; } for(i=k+1;i<len;i++) if(a[i-1]==' ' &&a[i]!=' ') return 0; return 1; } int main() { while(gets(a)) { if(fun()) printf("Yes\n"); else printf("No\n"); } return 0; } 7.凯撒的密码 #include<stdio.h> int main() { int e,i,k; char a[1001]; scanf("%d",&e); getchar(); while(e) { i=0; while(a[i]!='\n') { i++; a[i]=getchar(); } for( k=1;k<i;k++) { if(a[k]>'E'&&a[k]<='Z') a[k]-=5; else{ if(a[k]>='A'&&a[k]<='E') a[k]+=21;} } for(k=1;k<i;k++) printf("%c",a[k]); printf("\n"); e--; } return 0; } 8.括号编码 #include <stdio.h> int main() { int a[30],b[30],c[30],k,n,i,j,m,s; scanf("%d",&k); while(k--) { scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); b[0]=a[0]; for(j=1;j<n;j++) b[j]=a[j]-a[j-1]; for(m=0;m<n;m++) { if(b[m]!=0) { c[m]=1; b[m]--; } else { s=0; for(i=m;i>=0;i--) { if(b[i]==0) s++; else { b[i]--; break; } } c[m]=s+1; } } for(i=0;i<n;i++) { if(i==n-1) printf("%d",c[i]); else printf("%d ",c[i]); } printf("\n"); } return 0; } 9.狼群战术 #include<stdio.h> #include<string.h> #define N 1000 int main() { char a[N+1],b[5][5]={'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','B','N','M'}; char c[N+1],*p,*q; int m,i,j,k,s; scanf("%d",&m); s=getchar(); while(m--) { i=0; while(a[i++]!=10) { a[i]=getchar(); } p=a+1; i=1; while(*p!=10) { q=p+1; if(*p>='A'&&*p<='E'&&*p!='F') { j=*p-65; k=*q-65; c[i++]=b[j][k]; p=p+2; } else if(*p=='F') { c[i++]='V'; p=p+2; } else { c[i++]=*p; p++; } } for(s=1;s<i;s++) printf("%c",c[s]); printf("\n"); } return 0; } 10.列车长的烦恼 #include<stdio.h> #define N 100 int main() { int a[N+1],i,j,n,m,s,r; int b[N+1]; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&m); for(j=1;j<=m;j++) scanf("%d",&a[j]); j=1;r=0; for(s=1;s<=m;s++) { while(a[s]>=j) { r++; b[r]=j; j++; } if(a[s]==b[r]) r--; } if(r==0) printf("Yes\n"); else printf("No\n"); } return 0; } 11.零件 #include<stdio.h> #define N 100 int main() { int n,m,i,c[N],b[N],ans,sum,len; char a[N][N]; char *p,*q,*f; scanf("%d",&n); while(n--) { scanf("%d",&m); getchar(); for(i=1;i<=m*2;i++) gets(a[i]); for(i=1;i<=2*m;i++) { p=a[i]; while(*p!='X') p++; f=p; while(*p) { if(*p=='X') q=p; p++; } if(i<=m) c[i]=q-f+1; else b[i-m]=q-f+1; } sum=0; for(i=1;i<=m;i++) if(c[i]+b[i]>sum) sum=c[i]+b[i]; ans=0; for(i=1;i<=2*m;i++) { p=a[i];len=0; while(*p) { if(*p=='X') len++; p++; } if(i<=m) c[i]=len; else b[i-m]=len; } for(i=1;i<=m;i++) ans=ans+sum-c[i]-b[i]; printf("%d\n",ans); } return 0; } 12.平方数 #include<stdio.h> #define N 100 int main() { long a[N+1]; int n,i,j,s; while(1) { scanf("%d",&n); if(n==0) break; s=0; for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { if(a[i]>10000) continue; else for(j=1;j<=n;j++) if(a[i]*a[i]==a[j]) s++; } printf("%d\n",s); } return 0; } 13.青蛙王子 #include<stdio.h> int main() { int x,y,z,max,a,b; while(1) { scanf("%d",&x); scanf("%d",&y); scanf("%d",&z); if(x==0&&y==0&&z==0) break; if(x==0&&y==0&&z!=0) { printf("No\n"); continue; } else { if(x*y==0) { if(z%(x+y)==0) { printf("Yes\n"); continue; } else { printf("No\n"); continue; } } } max=y; if(x>max) { max=x; x=y; y=max; } while(1) { a=y%x; if(a==1||a==0) break; else { y=x; x=a; } } if(a==0) a=x; if(z%a==0) printf("Yes\n"); else printf("No\n"); } return 0; } 14.数字序列 #include<stdio.h> #define N 4000000 int b[100000]; int a[N]={0}; int main() { b[0]=0; int i,n,k=1; a[1]=1; for(i=1;i<N,k<100000;i++) { if(a[i]) { b[k++]=i; if(i*2+1<N&&a[i*2+1]==0) a[i*2+1]=1; if(i*3+1<N&&a[i*3+1]==0) a[i*3+1]=1; } } while(1) { scanf("%d",&n); if(n<0) break; printf("%d\n",b[n]); } return 0; } 15.小希的迷宫 #include<stdio.h> #define N 100000 int main() { int n,m,s; int max,i,w,ma,min,q; while(1) { scanf("%d%d",&n,&m); if(n==-1&&m==-1) break; w=0;q=0;max=0;s=1; int a[N+1]={0}; while(1) { if(n==0&&m==0) break; if(n>max) max=n; if(m>max) max=m; if(a[n]==0&&a[m]==0) {a[n]=s;a[m]=s;s++;} else if(a[n]==0||a[m]==0) { if(a[n]!=0) a[m]=a[n]; if(a[m]!=0) a[n]=a[m]; } else if(a[n]==a[m]) q=1; else { min=a[n];ma=a[n]; if(a[m]<min) min=a[m]; else ma=a[m]; for(i=1;i<=max;i++) if(a[i]==ma) a[i]=min; } scanf("%d%d",&n,&m); } for(i=1;i<=max;i++) if(a[i]==1||a[i]==0) continue; else {w=1;break;} if(w==0&&q==0) printf("Yes\n"); else printf("No\n"); } return 0; } 16.一个小游戏 #include<stdio.h> #define N 1000 int ne[N],pr[N]; int main() { int i,k,m,n,a; scanf("%d",&k); while(k--) { scanf("%d%d",&n,&m); a=1; for(i=1;i<n;i++) ne[i]=i+1; ne[n]=1; for(i=2;i<=n;i++) pr[i]=i-1; pr[1]=n; while(n>1) { for(i=1;i<m;i++) a=ne[a]; ne[pr[a]]=ne[a]; pr[ne[a]]=pr[a]; a=ne[a]; n--; if(n==1) break; for(i=1;i<m;i++) a=pr[a]; ne[pr[a]]=ne[a]; pr[ne[a]]=pr[a]; a=pr[a]; n--; } printf("%d\n",a); } return 0; } 17.有多少个1 #include<stdio.h> int main() { long n; int m; while(scanf("%d",&n)!=-1) { m=0; if(n<0) { n=n+2147483648; m++; } while(n) { if(n%2==1) m++; n=n/2; } printf("%d\n",m); } return 0; } 18.远古文明算术题 #include <stdio.h> int main() { int k,i,s,r,sum,len; int stack[201],top; char a[201],b[201]; char *p,*q; scanf("%d",&k); getchar(); while(k--) { gets(a); p=a;s=0;top=0; while(*p) { if(*p==' ') {p++; continue;} if(*p>='0'&&*p<='9') { q=p; while(*q!=' ') q++; len=q-p;sum=0; while(len--) { r=*p-'0'; for(i=1;i<=len;i++) r=10*r; sum=sum+r; p++; } stack[top++]=sum; p++; } else { b[s++]=*p; if(s==1) switch(b[0]) { case '+':{stack[top-2]=stack[top-2]+stack[top-1];top--;s--;break;} case '-':{stack[top-2]=stack[top-2]-stack[top-1];top--;s--;break;} case '*':{stack[top-2]=stack[top-2]*stack[top-1];top--;s--;break;} case '/':{stack[top-2]=stack[top-2]/stack[top-1];top--;s--;break;} case '%':{stack[top-2]=stack[top-2]%stack[top-1];top--;s--;break;} } p++; } } printf("%d\n",stack[0]); } return 0; } 19.整数分类 #include <stdio.h> #include<string.h> #define N 500 int main() { int n,sum=0,x,len,i; char a[N+1]; while(1) { scanf("%s",a); len=strlen(a); if(a[0]=='0') break; if(len==1) printf("%d\n",a[0]-'0'); else { n=0; for(i=0;i<len;i++) { a[i]=a[i]-'0'; n=n+a[i]; } while(n>9) { sum=0; while(n>0) { x=n%10; sum+=x; n=n/10; } n=sum; } printf("%d\n",n); } } return 0; } 20.重构二叉树 #include<stdio.h> #include<string.h> #define N 100 char a[N],b[N],s[N][3]; int ca,n,i,lena,l
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服