第18周
课后1
1 #include<stdio.h> 2 int dt[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 3 4 int isr(int year) 5 { 6 if(year%4==0 && year%100!=0 || year%400==0) 7 return 1; 8 else return 0; 9 } 10 int main() 11 { 12 int n; 13 int y,m,d; 14 int sum; 15 scanf("%d",&n); 16 while(n--) 17 { sum=0; 18 scanf("%d %d %d",&y,&m,&d); 19 if(isr(y)==1) dt[2]=29; 20 else dt[2]=28; 21 for(int i=1;i<m;i++) 22 { 23 sum+=dt[i]; 24 } 25 sum+=d; 26 printf("%d\n",sum); 27 } 28 return 0; 29 }
课后2
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include "test.h" 4 #include<string.h> 5 6 void registerStaff(int n,staff *head) 7 { 8 int i; 9 for(i=0;i<n;i++) 10 { 11 staff *s=(staff*)malloc(sizeof(staff)); 12 scanf("%d %d %d %s",&s->id,&s->age,&s->wages,s->name); 13 s->next=NULL; 14 head->next=s; 15 head=s; 16 } 17 } 18 void getMaxWages(staff *head) 19 { 20 staff *p,*q,*pre,*c; 21 q=head; 22 p=head->next; 23 int m=-999; 24 while(p!=NULL) 25 { 26 if(m<p->wages) 27 { 28 pre = q; 29 c =p; 30 m=p->wages; 31 } 32 q=p; 33 p=p->next; 34 } 35 pre->next = c->next; 36 c->next = head->next; 37 head->next = c; 38 }
课后3
1 #include <stdio.h> 2 #include<stdlib.h> 3 #include "test.h" 4 5 6 void insertStaff(staff *head){ 7 staff*p=(staff*)malloc(sizeof(staff)); 8 scanf("%d%d%d %s",&p->id,&p->age,&p->wages,p->name); 9 p->next=NULL; 10 staff*q=head; 11 while(q->next!=NULL){ 12 q=q->next; 13 } 14 q->next=p; 15 } 16 17 void deleteStaff(staff *head,int id){ 18 staff*curr=head->next,*pre=head; 19 while(curr!=NULL&&curr->id!=id){ 20 curr=curr->next; 21 pre=pre->next; 22 } 23 if(curr!=NULL){ 24 pre->next=curr->next; 25 free(curr); 26 } 27 } 28 29 int getTotalStaff(staff *head){ 30 staff*p=head->next; 31 int sum=0; 32 while(p!=NULL){ 33 sum++; 34 p=p->next; 35 } 36 return sum; 37 } 38 39 int getAvgWages(staff *head){ 40 if(getTotalStaff(head)==0){ 41 return 0; 42 } 43 staff*p=head->next; 44 int totalwages=0; 45 while(p!=NULL){ 46 totalwages+=p->wages; 47 p=p->next; 48 } 49 return totalwages/getTotalStaff(head); 50 } 51 52 int getMaxAge(staff *head){ 53 staff*p=head->next,*temp=p; 54 if(p==NULL){ 55 return 0; 56 } 57 int MaxAge=p->age; 58 while(p!=NULL){ 59 if(p->age>MaxAge){ 60 temp=p; 61 MaxAge=p->age; 62 } 63 p=p->next; 64 } 65 return MaxAge; 66 } 67
巩固1
1 #include<stdio.h> 2 struct std { 3 int a; 4 int b; 5 }; 6 int main() 7 { 8 int n,s,i,j; 9 struct std a[105]; 10 struct std t; 11 while ( scanf( "%d %d",&n ,&s)&&!(n==0 && s==0) ) 12 { 13 for ( i=0;i<n;i++ ) 14 { 15 scanf( "%d%d",&a[i].a,&a[i].b ); 16 } 17 for ( i=0;i<n;i++ ) { 18 for ( j=0;j<n-i-1;j++ ) { 19 if ( a[j].b>a[j+1].b ) { 20 t=a[j]; 21 a[j]=a[j+1]; 22 a[j+1]=t; 23 } 24 } 25 } 26 for ( i=0;i<n;i++ ) 27 { 28 if ( s<a[i].b ) break; 29 else s+=a[i].a; 30 } 31 if (i==n) printf( "YES\n" ); 32 else printf( "NO\n" ); 33 } 34 return 0; 35 } 36
巩固2
1 #include<stdio.h> 2 3 int main() 4 { 5 int m,n,t=0;; 6 scanf("%d%d",&m,&n); 7 for(int i=m/5;i>=0;i--) 8 { 9 for(int j=0;j<=n;j++) 10 { 11 for(int k=n;k>=0;k--) 12 { 13 if(i+j+3*k==n && 5*i+3*j+k==m) 14 { 15 printf("%d %d %d\n",i,j,3*k); 16 t=1; 17 } 18 } 19 } 20 } 21 if(t==0) printf("no answer\n"); 22 return 0; 23 }
巩固3
1 #include<stdio.h> 2 3 int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 4 5 int isr(int year) 6 { 7 if(year%4==0 && year%100!=0 || year%400==0) 8 return 1; 9 else return 0; 10 11 } 12 13 int main() 14 { 15 int y,fd,m; 16 int c[13]; 17 18 scanf("%d %d %d",&y,&fd,&m); 19 if(isr(y)==1) d[2]=29; 20 c[1]=fd; 21 for(int i=2;i<=12;i++) 22 { 23 c[i]=(c[i-1]+d[i-1])%7; 24 } 25 26 int t=0; 27 switch(m) 28 { 29 case 1:printf("January ");break; 30 case 2:printf("February ");break; 31 case 3:printf("March ");break; 32 case 4:printf("April ");break; 33 case 5:printf("May ");break; 34 case 6:printf("June ");break; 35 case 7:printf("July ");break; 36 case 8:printf("August ");break; 37 case 9:printf("September ");break; 38 case 10:printf("October ");break; 39 case 11:printf("November ");break; 40 case 12:printf("December ");break; 41 } 42 printf("%d\n",y); 43 printf(" Sun Mon Tue Wed Thu Fri Sat\n"); 44 for(int j=1;j<=c[m];j++) 45 { 46 printf(" ");t++; 47 } 48 for(int k=1;k<=d[m];k++) 49 { 50 printf("%8d",k); 51 t++; 52 if(t==7) 53 { 54 printf("\n"); 55 t=0; 56 } 57 } 58 return 0; 59 }
ADADB DBBBD CAAAA DDCBA