实验五

任务一

 

 1 #include<stdio.h>
 2 #define N 5
 3 
 4 void input(int x[],int n);
 5 void output(int x[],int n);
 6 void find_min_max(int x[],int n,int *pmin,int *pmax);
 7 
 8 int main(){
 9     int a[N];
10     int min,max;
11 
12     printf("录入%d个数据:\n",N);
13     input(a,N);
14 
15     printf("数据是:\n");
16     output(a,N);
17 
18     printf("数据处理...\n");
19     find_min_max(a,N,&min,&max);
20 
21     printf("输出结果:\n");
22     printf("min=%d,max=%d\n",min,max);
23 
24     return 0;
25 
26 }
27 
28 void input(int x[],int n){
29     int i;
30 
31     for(i=0;i<n;i++)
32         scanf("%d",&x[i]);
33 
34     }
35 
36 void output(int x[],int n){
37     int i;
38 
39     for(i=0;i<n;i++)
40         printf("%d",x[i]);
41     printf("\n");
42 }
43 
44 void find_min_max(int x[],int n,int *pmin,int *pmax){
45     int i;
46 
47     *pmin=*pmax=x[0];
48     for(i=0;i<n;i++)
49         if(x[i]<*pmin)
50             *pmin=x[i];
51         else if(x[i]>*pmax)
52             *pmax=x[i];
53 }
 1 #include<stdio.h>
 2 #define N 5
 3 
 4 void input(int x[],int n);
 5 void output(int x[],int n);
 6 int *find_max(int x[],int n);
 7 
 8 int main(){
 9     int a[N];
10     int *pmax;
11 
12     printf("录入%d个数据:\n",N);
13      input(a,N);
14 
15      printf("数据是:\n");
16      output(a,N);
17 
18      printf("数据处理...\n");
19      pmax=find_max(a,N);
20 
21      printf("输出结果:\n");
22      printf("max=%d\n",*pmax);
23      return 0;
24 }
25 
26 void input(int x[],int n){
27      int i;
28 
29      for(i=0;i<n;i++)
30          scanf("%d",&x[i]);
31  }
32      
33  void output(int x[],int n){
34       int i;
35  
36     for(i=0;i<n;i++)
37          printf("%d",x[i]);
38     printf("\n");
39  }
40 
41  int *find_max(int x[],int n){
42      int max_index=0;
43      int i;
44 
45      for(i=1;i<n;i++)
46          if(x[i]>x[max_index])
47              max_index=i;
48      return &x[max_index];
49  }

 

 

 

 

 

 

 

任务一截图

 

任务二

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 80
 4 
 5 int main(){
 6     char s1[]="Learning makes me happy";
 7     char s2[]="Learning makes me sleepy";
 8     char tmp[N];
 9 
10     printf("sizeof(s1) vs.strlen(s1):\n");
11     printf("sizeof(s1)=%d\n",sizeof(s1));
12     printf("strlen(s1)=%d\n",strlen(s1));
13 
14     printf("\nbefore swap:\n");
15     printf("s1:%s\n",s1);
16     printf("s2:%s\n",s2);
17 
18     printf("\nswapping...\n");
19     strcpy(tmp,s1);
20     strcpy(s1,s2);
21     strcpy(s2,tmp);
22 
23     printf("\nafter swap:\n");
24     printf("s1:%s\n",s1);
25     printf("s2:%s\n",s2);
26 
27     return 0;
28 }

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 80
 4 
 5 int main(){
 6     char *s1="Learning makes me happy";
 7     char *s2="Learning makes me sleepy";
 8     char *tmp;
 9 
10     printf("sizeof(s1) vs.strlen(s1):\n");
11     printf("sizeof(s1)=%d\n",sizeof(s1));
12     printf("strlen(s1)=%d\n",strlen(s1));
13 
14     printf("\nbefore swap:\n");
15     printf("s1:%s\n",s1);
16     printf("s2:%s\n",s2);
17 
18     printf("\nswapping...\n");
19     tmp=s1;
20     s1=s2;
21     s2=tmp;
22 
23     printf("\nafter swap:\n");
24     printf("s1:%s\n",s1);
25     printf("s2:%s\n",s2);
26 
27     return 0;
28 }

 

 

任务二截图

 

任务三

 1 #include<stdio.h>
 2 
 3 #include<stdio.h>
 4 
 5 int main(){
 6     int x[2][4]={{1,9,8,4},{2,0,4,9}};
 7     int i,j;
 8 
 9     int *ptr1;
10     int(*ptr2)[4];
11 
12     printf("输出1:使用数组名.下标直接访问二维数组元素\n");
13     for(i=0;i<2;i++){
14         for(j=0;j<4;j++)
15             printf("%d",x[i][j]);
16         printf("\n");
17     }
18     printf("\n输出2:使用指向元素的指针变量p间接访问二维数组元素\n");
19     for(ptr1=&x[0][0],i=0;ptr1<&x[0][0]+8;++ptr1,++i){
20         printf("%d",*ptr1);
21 
22         if((i+1)%4==0)
23             printf("\n");
24     }
25 
26     printf("\n输出3:使用指向一维数组的指针变量q间接访问二维数组元素\n");
27     for(ptr1=&x[0][0],i=0;ptr1<&x[0][0]+8;++ptr1,++i){
28             printf("%d",*ptr1);
29 
30             if((i+1)%4==0)
31             printf("\n");
32     }
33     return 0;
34 }

任务三截图

任务四

 1 #include<stdio.h>
 2 #define N 80
 3 
 4 void replace(char *str,char old_char,char new_char);
 5 
 6 int main(){
 7     char text[N]="c programing is difficult or not,it is a question";
 8 
 9     printf("原始文本:\n");
10     printf("%s\n",text);
11     
12     replace(text,'i','*');
13 
14     printf("处理后文本:\n");
15         printf("%s\n",text);
16 
17         return 0;
18 }
19 
20 void replace(char *str,char old_char,char new_char){
21     int i;
22 
23     while(*str){
24         if(*str==old_char)
25             *str==new_char;
26         str++;
27     }
28 }

任务四截图

任务五

 1 #include<stdio.h>
 2 #include<string.h>
 3 void sort(char *name[],int n);
 4 
 5 int main(){
 6     char *course[4]={"C program",
 7                      "C++ Object Oriented Program",
 8                      "Operating System",
 9                      "Data Structure and Algorithms"};
10     int i;
11 
12     sort(course,4);
13 
14     for(i=0;i<4;i++)
15         printf("%s\n",course[i]);
16 
17     return 0;
18 }
19 
20 void sort(char *name[],int n){
21     int i,j;
22     char *tmp;
23 
24     for(i=0;i<n-1;i++)
25         for(j=0;j<n-i-1;j++)
26             if(strcmp(name[j],name[j+1])>0){
27                 tmp=name[j];
28                 name[j]=name[j+1];
29                 name[j+1]=tmp;
30             }
31 }

 

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 void sort(char *name[], int n);
 5 
 6 int main() {
 7     char *course[4]={"C program",
 8                      "C++ Object Oriented Program",
 9                      "Operating System",
10                      "Data Structure and Algorithms"};
11     int i;
12 
13     sort(course,4);
14     for(i=0;i<4;i++)
15         printf("%s\n",course[i]);
16 
17     return 0;
18 }
19 
20 void sort(char *name[],int n){
21     int i,j,k;
22     char *tmp;
23 
24     for(i=0;i<n-1;i++){
25         k=i;
26         for(j=i+1;j<n;j++)
27             if(strcmp(name[j],name[k])<0)
28                 k=j;
29 
30         if(k!=i){
31             tmp=name[k];
32             name[i]=name[k];
33             name[k]=tmp;
34         }
35     }
36 }

 

 

任务五截图

 

任务六

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 5
 4 
 5 int check_id(char *str);
 6 
 7 int main(){
 8     char *pid[N]={"31010120000721656X",
 9                   "330106199609203301",
10                   "53010220051126571",
11                   "510104199211197977",
12                   "53010220051126133Y"};
13     int i;
14 
15     for(i=0;i<N;++i)      
16         if(check_id(pid[i]))
17             printf("%s\tTrue\n",pid[i]);
18         else
19             printf("%s\tFALSE\n",pid[i]);
20 
21     return 0;
22 }
23 int check_id(char *str){
24     int length=strlen(str);
25     int i;
26     if(length!=18)
27         return 0;
28 
29     for(i=0;i<17;i++)
30     {
31         if(str[i]<'0'||str[i]>'9')
32             return 0;
33         else
34             return 1;
35     }
36     if(str[17]!='X'&&str[17]<'0'||str[17]>'9')
37         return 0;
38     else 
39         return 1;
40     
41 }

任务六截图

 

任务七

 

 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #define N 80
 5 void encoder(char* str); 
 6 void decoder(char* str);
 7 int main() {
 8     char words[N];
 9     printf("输入英文文本: ");
10     gets(words);
11     printf("编码后的英文文本: ");
12     encoder(words); 
13     printf("%s\n", words);
14     printf("对编码后的英文文本解码: ");
15     decoder(words); 
16     printf("%s\n", words);
17     return 0;
18 }
19 
20 
21 void encoder(char* str) {
22     int i = 0;
23     for (i = 0; i<strlen(str); i++)
24     {
25         if ((str[i] >= 'a' && str[i] <= 'y') || (str[i] >= 'A' && str[i] <= 'Y'))
26             str[i] = str[i] + 1;
27         else if (str[i] == 'z')
28             str[i] = 'a';
29         else if (str[i] == 'Z')
30             str[i] = 'A';
31         else
32             str[i] = str[i];
33     }
34 
35 }
36 
37 
38 void decoder(char* str) {
39     int i = 0;
40     for (i = 0; i<strlen(str); i++)
41     {
42         if ((str[i] >= 'b' && str[i] <= 'z') || (str[i] >= 'B' && str[i] <= 'Z'))
43             str[i] = str[i] - 1;
44         else if (str[i] == 'a')
45             str[i] = 'z';
46         else if (str[i] == 'A')
47             str[i] = 'Z';
48     }
49 }

截图

 

posted @ 2023-12-03 19:08  蔡文灿  阅读(10)  评论(0)    收藏  举报