实验四

task1.1

 1 #include<stdio.h>
 2 #define N 4
 3 
 4 int main()
 5 {
 6     int a[N]={2,0,2,2};
 7     char b[N]={'2','0','2','2'};
 8     int i;
 9     
10     printf("sizeof(int)=%d\n",sizeof(int));
11     printf("sizeof(char)=%d\n",sizeof(char));
12     printf("\n");
13     
14     for(i=0;i<N;++i)
15     printf("%p:%d\n",&a[i],a[i]);
16     
17     printf("\n");
18     
19     for(i=0;i<N;++i)
20     printf("%p:%c\n",&b[i],b[i]);
21     
22     printf("\n");
23     
24     printf("a=%p\n",a);
25     printf("b=%p\n",b);
26     
27     return 0;
28  } 

1连续保存,四

2连续保存,一

 

 

task1.2

 1 #include<stdio.h>
 2 #define N 2
 3 #define M 3
 4 
 5 int main()
 6 {
 7     int a[N][M]={{1,2,3},{4,5,6}};
 8     char b[N][M]={{'1','2','3'},{'4','5','6'}};
 9     int i,j;
10     
11     for(i=0;i<N;++i)
12     for(j=0;j<M;++j)
13     printf("%p:%d\n",&a[i][j],a[i][j]);
14     
15     printf("\n");
16     
17     for(i=0;i<N;++i)
18     for(j=0;j<M;++j)
19     printf("%p:%c\n",&b[i][j],b[i][j]);
20     
21     return 0;
22  } 

1一样,4

2一样,1

 

task2

 1 #include<stdio.h>
 2 
 3 int days_of_year(int year,int month,int day);
 4 
 5 int main()
 6 {
 7     int year,month,day;
 8     int days;
 9     
10     while(scanf("%d%d%d",&year,&month,&day)!=EOF)
11     {
12         days=days_of_year(year,month,day);
13         printf("%4d-%02d-%02d是这一年的第%d天.\n\n",year,month,day,days);
14     }
15     
16     return 0;
17 }
18 
19 int days_of_year(int year,int month,int day)
20 {
21     int flag=0;
22     if(year%4==0&&year%100!=0||year%400==0)
23     flag=1;
24     int days=0;
25     int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},i;
26     for(i=1;i<month;i++)
27     {
28         days+=a[i];
29     }
30     days+=day+flag;
31     return days;
32     
33 }

task3

 1 #include<stdio.h>
 2 #define N 5
 3 
 4 void input(int x[],int n);
 5 void output(int x[],int n);
 6 double average(int x[],int n);
 7 void sort(int x[],int n);
 8 
 9 int main()
10 {
11     int scores[N];
12     double ave;
13     
14     printf("录入%d个分数:\n",N);
15     input(scores,N);
16     
17     printf("\n输出课程分数:\n");
18     output(scores,N);
19     
20     printf("\n课程分数处理:计算均分,排序。。。\n");
21     ave=average(scores,N);
22     sort(scores,N);
23     
24     printf("\n输出课程均分:%.2f\n",ave);
25     printf("\n输出课程分数(高->低):\n");
26     output(scores,N);
27     
28     return 0;    
29 }
30 
31 
32 void input(int x[],int n)
33 {
34     int i;
35     for(i=0;i<n;++i)
36     scanf("%d",&x[i]);
37 }
38 
39 void output(int x[],int n)
40 {
41     int i;
42     for(i=0;i<n;++i)
43     printf("%d ",x[i]);
44     
45     printf("\n");
46 }
47 
48 
49 double average(int x[],int n)
50 {
51     int i;
52     double s=0.0;
53     for(i=0;i<n;i++)
54     s+=x[i];
55     return(s/n);
56 }
57 
58 
59 void sort(int x[],int n)
60 {
61     int i,j,p;
62     for(j=1;j<=n-1;j++)
63     {
64     for(i=0;i<n-j;i++)
65     {
66         if(x[i]<x[i+1])
67         {
68         p=x[i];
69         x[i]=x[i+1];
70         x[i+1]=p;
71         }
72      }
73     }
74 }

task4

 1 #include<stdio.h>
 2 void dec2n(int x,int n);
 3 
 4 int main()
 5 {
 6     int x;
 7     
 8     printf("输入一个十进制整数:");
 9     scanf("%d",&x);
10     
11     dec2n(x,2);
12     dec2n(x,8);
13     dec2n(x,16);
14     return 0;
15 }
16 
17 
18 void dec2n(int x,int n)
19 {    
20     int i=0,a[32];
21     while(x>0)
22     {
23         a[i]=x%n;
24         i=i+1;
25         x=x/n;
26     }
27     if(n<=10)
28     {
29     
30         for(i--;i>=0;i--)
31         {
32           printf("%d",a[i]);
33         }
34         printf("\n");
35         return;
36     }
37     else
38     {
39         for(i--;i>=0;i--)
40         {
41             switch(a[i])
42             {
43                 case 10:printf("A");break;
44                 case 11:printf("B");break;
45                 case 12:printf("C");break;
46                 case 13:printf("D");break;
47                 case 14:printf("E");break;
48                 case 15:printf("F");break;
49                 default:printf("%d",a[i]);break;
50             }
51         }
52     }
53     return ;
54 }

task5

 1 #include<stdio.h>
 2 main()
 3 {
 4     int n,i,j;
 5     scanf("%d",&n);
 6     for(i=1;i<=n;i++)
 7     {
 8         for(j=1;j<=i;j++)
 9         printf("%d ",j);
10         for(j;j<=n;j++)
11         printf("%d ",i);
12         
13         printf("\n");
14     }
15     return 0;
16  } 

 

 

task6

 1 #include<stdio.h>
 2 #define N 80
 3 
 4 int main() 
 5 { 
 6     char views1[N] = "hey, c, i hate u."; 
 7     char views2[N] = "hey, c, i love u."; 
 8     printf("original views:\n");
 9     printf("views1: %s\n",views1);
10     printf("views2: %s\n",views2);
11     char temp;
12     int i=0;
13     while(views1[i]!='\0')
14     {
15         temp=views2[i];
16         views2[i]=views1[i];
17         views1[i]=temp;
18         i++;    
19     }
20     printf("\nswapping...\n");
21     printf("views1: %s\n",views1);
22     printf("views2: %s\n",views2);
23     
24     return 0;
25 }

task7

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 5
 4 #define M 20
 5 void bubble_sort(char str[][M], int n);
 6 int main()
 7 {
 8     char name[][M] = { "Bob","Bill","Joseph","Taylor","George" };
 9     int i;
10     printf("输出初始名单:\n");
11     for (i = 1; i < N; i++)
12         printf("%s\n", name[i]);
13     printf("\n排序中…\n");
14     bubble_sort(name, N);
15     printf("\n按字典输出名单:\n");
16     for (i = 1; i < N; i++)
17         printf("%s\n", name[i]);
18     return 0;
19 }
20 void bubble_sort(char str[][M], int n)
21 {
22     int i, j;
23     char t[10];
24     for(i=0;i<n-1;i++)
25         for(j=0;j<n-i-1;j++)
26             if (strcmp(str[j], str[j + 1]) > 0)
27             {
28                 strcpy(t, str[j]);
29                 strcpy(str[j], str[j + 1]);
30                 strcpy(str[j + 1], t);
31             }
32 }

 

posted @ 2022-05-09 00:04  19度的小常  阅读(23)  评论(2)    收藏  举报