第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

posted @ 2022-01-03 16:59  BraveNullNull  阅读(133)  评论(0)    收藏  举报