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