山东大学23强基班计算机导论第七次习题答案是什么?

摘要:T1.1 int day_of_year(int year,int month,int day) { static int sum[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(year %
T1.1 int day_of_year(int year,int month,int day) { static int sum[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(year % 4 == 0 && year % 100 != 0) sum[2]++; else if(year % 4 == 0 && year % 100 ==0 & year %400==0) sum[2]++; int offset = 0; for(int i=1;i<month;i++) offset+=sum[i]; offset+=day; return offset; } T2.1 #include <stdio.h> int main() { int sum = 0; int n; scanf("%d",&n); for(int i = 0;i < n;i++) for(int j = 0;j < n;j++) { int t; scanf("%d",&t); if(i+j==n-1 || i==n-1 || j==n-1) continue; sum+=t; } printf("%d",sum); } T2.2 #include <stdio.h> int main() { int m,n; scanf("%d%d",&m,&n); for(int i=0;i<m;i++){ int sum=0; for(int j=0;j<n;j++){ int t; scanf("%d",&t); sum+=t; } printf("%d\n",sum); } } T2.3 #include <stdio.h> #define N 128 int A[N][N]; int B[N][N]; int C[N][N]; int main() { int m1,n1,m2,n2; scanf("%d%d",&m1,&n1); for(int i=0;i<m1;i++) for(int j=0;j<n1;j++) scanf("%d",&A[i][j]); scanf("%d%d",&m2,&n2); for(int i=0;i<m2;i++) for(int j=0;j<n2;j++) scanf("%d",&B[i][j]); if(n1!=m2) { printf("Error: %d != %d",n1,m2); return 0; } // In this way,It`s will be faster than normal by about 4 times. for(int k=0;k<n1;k++) for(int i=0;i<m1;i++) for(int j=0;j<n2;j++) C[i][j]+=A[i][k]*B[k][j]; printf("%d %d\n",m1,n2); for(int i=0;i<m1;i++){ for(int j=0;j<n2;j++){ printf("%d",C[i][j]); if(j!=n2-1) putchar(' '); } putchar('\n'); } } T2.4 #include <stdio.h> int main() { int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); int flag = 1; // As a result of buffer. for(int i=0;i<n;i++) for(int j=0;j<n;j++) { int t; scanf("%d",&t); if(t!=0 && i>j){ // printf("%d %d %d\n",i,j,t); flag=0; } } if(flag) puts("YES"); else puts("NO"); } } T2.5 #include <stdio.h> int main() { int m,n; int maxn = -0x01145140; int nx,ny; scanf("%d%d",&m,&n); for(int i=0;i<m;i++) for(int j=0;j<n;j++) { int t; scanf("%d",&t); if(t>maxn) { maxn=t; nx=i;ny=j; } } printf("%d\n%d %d",maxn,nx,ny); } T2.6 #include <stdio.h> int A[8][8]; int main() { int n; scanf("%d",&n); for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&A[j][i]); for(int i=0;i<n;i++,putchar('\n')) for(int j=0;j<n;j++) printf("%4d",A[i][j]); // So easy. } T2.7 #include <stdio.h> int A[12][12]; int main() { int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&A[i][j]); for(int i=0;i<n;i++) for(int j=0;j<n;j++) { int t;scanf("%d",&t); if(t!=A[i][j]) { puts("No"); return 0; } } puts("Yes"); } T2.8 #include <stdio.h> int A[12][12]; int main() { int n; scanf("%d",&n); int dx[]={1,-1,0,0}; int dy[]={0,0,1,-1}; // I think it have a math way,But A it will be faster to write. int T[]={2,3,1,0};//trans matrix int nx=0,ny=0,step=n*n,cur=1,way=0; int a=0,b=n-1,c=1,d=n-1; // bound while(step--) { A[ny][nx]=cur; if(way==0 && nx==b){ way=T[way]; b--; } else if(way==1 && nx==a){ way=T[way]; a++; } else if(way==2 && ny==d){ way=T[way]; d--; } else if(way==3 && ny==c){ way=T[way]; c++; } nx+=dx[way]; ny+=dy[way]; cur++; } // Too ugly for(int i=0;i<n;i++,putchar('\n')) for(int j=0;j<n;j++) printf("%3d",A[i][j]); } T2.9 #include <stdio.h> int main() { int n; scanf("%d",&n); for(int i=0;i<n;i++,putchar('\n')) { for(int j=0;j<n;j++) { putchar('0' + (i==j)); putchar(' '); } } }