实验四

 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 }
29 //Q1:Yes. 4//
30 //Q2:No. 1//
31 //Q3:Yes. Yes.//

1.连续存放,每个元素占4个内存字节单位

2.连续存放,每个元素占1个内存字节单位

3.一样,一样

task 1-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

task 2

#include<stdio.h>

int days_of_year(int year, int month, int day);

int main()
{
    int year, month, day;
    int days;

    while(scanf("%d%d%d",&year,&month,&day)!=EOF)
    {
        days=days_of_year(year, month, day);
        printf("%4d-%02d-%02d是这一年的第%d天.\n\n",year,month,day,days);
    }

    return 0;
}

int days_of_year(int year,int month,int day)
{

    int i;
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

    for(i=1;i<month;i++)
    {
        day+=a[i];
    }
    if((year%4==0&&year%100!=0)||(year%400==0))
        day+=1;

    return day;
}

 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 void input(int x[],int n)
32 {
33     int i;
34 
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 
43     for(i=0;i<n;i++)
44         printf("%d ",x[i]);
45 
46     printf("\n");
47 }
48 
49 double average(int x[],int n)
50 {
51     double sum;
52     int i=0;
53 
54     while(i<N)
55         sum+=x[i++];
56 
57     return sum/n;
58 }
59 
60 void sort(int x[],int n)
61 {
62     int i,j,temp;
63 
64     for(i=0;i<=n-2;i++)
65         for(j=n-1;j>i;j--)
66             if(x[j]>x[j-1])
67                 {
68                     temp=x[j];
69                     x[j]=x[j-1];
70                     x[j-1]=temp;
71                 }
72 }

 1 #include<stdio.h>
 2 
 3 void dec2n(int x,int n);
 4 
 5 int main()
 6 {
 7     int x;
 8 
 9     printf("输入一个十进制整数:");
10     scanf("%d",&x);
11 
12     dec2n(x,2);
13     printf("\n");
14     dec2n(x,8);
15     printf("\n");
16     dec2n(x,16);
17     printf("\n");
18 
19     return 0;
20 }
21 
22 void dec2n(int x,int n)
23 {
24     int a,b;char m[16]={"0123456789ABCDEF"};
25     a=x/n;
26     b=x%n;
27     if(a==0)
28     {
29         printf("%c",m[b]);
30     }
31     else
32     {
33         dec2n(a,n);
34         printf("%c",m[b]);
35     }
36 }

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int n,i,j,temp;
 6 
 7     printf("Enter n: ");
 8     while(scanf("%d",&n)!=EOF)
 9     {
10         for(i=1;i<=n;i++)
11         {
12             for(j=1;j<=i;j++)
13                 printf("%d ",j);
14 
15             temp=j-1;
16 
17             for(;j<=n;j++)
18                 printf("%d ",temp);
19 
20             printf("\n");
21         }
22         printf("\nEnter n: ");
23     }
24     return 0;
25 }

 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     char view[N];int i=0;
 9 
10     printf("original views:\n");
11     printf("views1: %s\n",views1);
12     printf("views2: %s\n",views2);
13 
14     for(i=0;i<N;i++)
15     {
16         view[i]=views1[i];
17         views1[i]=views2[i];
18         views2[i]=view[i];
19     }
20 
21     printf("\nswapping...\n\n");
22     printf("views1: %s\n",views1);
23     printf("views2: %s\n",views2);
24 
25     return 0;
26 }

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

 

posted @ 2022-05-09 22:05  映月三花  阅读(6)  评论(1编辑  收藏  举报