实验4

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

 

 

 

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

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

3.都是一样的

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

 

 

 

1.是,4个

2.是,1个

 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     
17     return 0;
18 }
19 
20 int days_of_year(int year,int month,int day)
21 {
22     int i,t=0;
23     if(year%4==0&&year%100!=0 || year%400==0)
24     {
25         int a[12]={31,29,31,30,31,30,31,31,30,31,30,31};
26         for(i=0;i<month-1;i++)
27         t=t+a[i];
28         t=t+day;
29     }
30     else
31     {
32         int a[12]={31,30,31,30,31,30,31,31,30,31,30,31};
33         for(i=0;i<month-1;i++)
34         t=t+a[i];
35         t=t+day;
36     }
37     return t;
38 }

 

 

 

 

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

 

 

 

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

 

 

 

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

 

 

 

 1 #include <stdio.h> 
 2 #define N 80 
 3 #include <string.h>
 4 int main() 
 5 { 
 6    char views1[N] = "hey, c, i hate u.";
 7    char views2[N] = "hey, c, i love u."; 
 8    char temp;
 9    int i = 0;
10    printf("original views:\n");
11    printf("views1: %s\n",views1);
12    printf("views2: %s\n",views2);
13    while(views1[i]!='\0')
14    {
15           temp = views1[i];
16        views1[i] = views2[i];
17        views2[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 }

 

 

 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 = 0; 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 = 0; 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-07 15:56  里Li  阅读(14)  评论(0)    收藏  举报