# 实验4 数组

 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.//

Q1: 是。 4.

Q2：不是。 1.

Q3: 是。 是。

 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 }
23 //Q1:Yes. 4//
24 //Q2:Yes. 1//

Q1:是。 4.

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

 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     dec2n(x,8);
14     dec2n(x,16);
15
16     return 0;
17 }
18
19 void dec2n(int x,int n)
20 {
21     int b[50],i,temp,j;
22     char a[18]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
23
24     for(i=0;x!=0;i++)
25     {
26         b[i]=x%n;
27         x/=n;
28     }
29
30     for(i-=1;i>=0;i--)
31     {
32         temp=b[i];
33         printf("%c",a[temp]);
34     }
35
36     printf("\n");
37 }

 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 #include <string.h>
3 #define N 80
4
5 int main()
6 {
7     char views1[N]="hey, c, i hate u.";
8     char views2[N]="hey, c, i love u.";
9     char temp[N];
10
11     printf("original views:\n");
12     puts(views1);
13     puts(views2);
14
15     printf("\nswappint...\n\n");
16
17     strcpy(temp,views1);
18     strcpy(views1,views2);
19     strcpy(views2,temp);
20
21     puts(views1);
22     puts(views2);
23 }

 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 }

1、对于字符串，应该常记这几个函数 strcpy（）、strlen（）、strcat（）、strcmp（）；

2、char[ ]数组在构建时，应谨记最后一位为 '/0',需要预留一位予以储存。

posted @ 2022-05-09 19:07  Nixmout  阅读(7)  评论(1编辑  收藏  举报