实验四
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 }