实验五
任务一
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 }
截图


浙公网安备 33010602011771号