task1_1
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 4 4 5 int main() { 6 int a[N] = {1, 9, 8, 4}; 7 char b[N] = {'1', '9', '8', '4'}; 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 // 输出数组a中每个元素的地址、值 15 for (i = 0; i < N; ++i) 16 printf("%p: %d\n", &a[i], a[i]);//格式符%p用于以十六进制形式输出地址 17 printf("\n"); 18 19 // 输出数组b中每个元素的地址、值 20 for (i = 0; i < N; ++i) 21 printf("%p: %c\n", &b[i], b[i]); 22 printf("\n"); 23 24 // 输出数组名a和b对应的值 25 printf("a = %p\n", a); 26 printf("b = %p\n", b); 27 28 system("pause"); 29 return 0; 30 }
(1)是连续存放的,每个元素(int)占用4个字节。
(2)是连续存放的,每个元素(char)占用1个字节。
(3)是一样的。
task1_2#include <stdio.h> #define N 13 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 count; if(year % 4==0 && year % 100 !=0||year % 400 ==0){ count=1; } else{ count=0; } int days_of_months[13]={0,31,(28+count),31,30,31,30,31,31,30,31,30,31}; int days=0; for(int i=1;i<month;i++) { days+=days_of_months[i]; } days+=day; return days; }
task3
#include <stdio.h> #include <stdlib.h> #define N 5 // 函数声明 void input(int x[], int n); void output(int x[], int n); double average(int x[], int n); void bubble_sort(int x[], int n); int main() { int scores[N]; double ave; printf("录入%d个分数:\n", N); input(scores, N); printf("\n输出课程分数: \n"); output(scores, N); printf("\n课程分数处理: 计算均分、排序...\n"); ave = average(scores, N); bubble_sort(scores, N); printf("\n输出课程均分: %.2f\n", ave); printf("\n输出课程分数(高->低):\n"); output(scores, N); system("pause"); return 0; } // 函数定义 // 输入n个整数保存到整型数组x中 void input(int x[], int n) { int i; for(i = 0; i < n; ++i) scanf("%d", &x[i]); } // 输出整型数组x中n个元素 void output(int x[], int n) { int i; for(i = 0; i < n; ++i) printf("%d ", x[i]); printf("\n"); } double average(int x[], int n){ double ans=0.0; for(int i=0;i<n;i++){ ans+=x[i]; } ans/=n; return ans; } // 对整型数组x中的n个元素降序排序 // 补足函数bubble_sort()实现 // ××× void bubble_sort(int x[], int n){ int t=0; for (int i = 0; i < n-1; i++) { for (int j = 0; j < n-1-i; j++) { if (x[j] < x[j + 1]) { t = x[j]; x[j] = x[j + 1]; x[j + 1] = t; } } } }
task4
1 #include <stdio.h> 2 #define N 100 3 void dec2n(int x, int n); // 函数声明 4 5 int main() { 6 int x; 7 8 printf("输入一个十进制整数: "); 9 while(scanf("%d", &x) != EOF) { 10 dec2n(x, 2); // 函数调用: 把x转换成二进制输出 11 dec2n(x, 8); // 函数调用: 把x转换成八进制输出 12 dec2n(x, 16); // 函数调用: 把x转换成十六进制输出 13 14 printf("\n输入一个十进制整数: "); 15 } 16 17 return 0; 18 } 19 20 void dec2n(int x, int n){ 21 int ans[N]; 22 ans[0]=0; 23 int t,i; 24 for(i=1;;i++) 25 { 26 ans[i] = x % n; 27 x/=n; 28 if(ans[i]==10) ans[i]='A'; 29 else if(ans[i]==11) ans[i]='B'; 30 else if(ans[i]==12) ans[i]='C'; 31 else if(ans[i]==13) ans[i]='D'; 32 else if(ans[i]==14) ans[i]='E'; 33 else if(ans[i]==15) ans[i]='F'; 34 if(x==0) break; 35 } 36 while(n==2||n==8){ 37 for(int j=i;j>0;j--) 38 printf("%d",ans[j]); 39 break; 40 } 41 while(n==16){ 42 for(int j=i;j>0;j--){ 43 if(ans[j]>=65) 44 printf("%c",ans[j]); 45 else 46 printf("%d",ans[j]); 47 } 48 break; 49 } 50 printf("\n"); 51 52 53 54 }
task5
1 #include <stdio.h> 2 #define N 100 3 4 // 函数声明 5 void func(int x[][N], int n); // 注意:两维数组作为形参的语法 6 void output(int x[][N], int n); // 注意:两维数组作为形参的语法 7 8 int main() { 9 int x[N][N]; 10 int i, j, n; 11 12 printf("Enter n: "); 13 while(scanf("%d", &n) != EOF) { 14 func(x, n); // 注意:两维数组作为实参的语法 15 output(x, n); // 注意:两维数组作为实参的语法 16 17 printf("\nEnter n: "); 18 } 19 20 return 0; 21 } 22 23 // 函数定义 24 // 功能:输出两维数组x中的数据,数据项n行、n列 25 void output(int x[][N], int n) { 26 int i, j; 27 28 for(i = 0; i < n; ++i) { 29 for(j = 0; j < n; ++j) 30 printf("%5d", x[i][j]); 31 32 printf("\n"); 33 } 34 } 35 36 37 // 函数定义 38 void func(int x[][N], int n){ 39 for(int i=0;i<=n;i++){ 40 for(int j=0;j<=n;j++){ 41 if(i<=j) 42 x[i][j]=i+1; 43 else 44 x[i][j]=j+1; 45 } 46 } 47 }
task6_1
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define N 80 5 6 int main() { 7 char views1[N] = "hey, C, I have not love u yet."; 8 char views2[N] = "hey, C, how can I love u?"; 9 char t[N]; 10 11 printf("交换前: \n"); 12 printf("views1: %s\n", views1); 13 printf("views2: %s\n", views2); 14 15 // 交换 16 strcpy(t, views1); 17 strcpy(views1, views2); 18 strcpy(views2, t); 19 20 printf("交换后: \n"); 21 printf("views1: %s\n", views1); 22 printf("views2: %s\n", views2); 23 24 system("pause"); 25 return 0; 26 }
task6_2
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define N 80 5 6 int main() { 7 char views[2][N] = {"hey, C, I have not love u yet.", 8 "hey, C, how can I love u?"}; 9 10 char t[N]; 11 12 printf("交换前: \n"); 13 printf("views1: %s\n", views[0]); 14 printf("views2: %s\n", views[1]); 15 16 // 交换 17 strcpy(t, views[0]); 18 strcpy(views[0], views[1]); 19 strcpy(views[1], t); 20 21 printf("交换后: \n"); 22 printf("views1: %s\n", views[0]); 23 printf("views2: %s\n", views[1]); 24 25 system("pause"); 26 return 0; 27 }
task7
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define N 5 5 #define M 20 6 7 void bubble_sort(char str[][M], int n); // 函数声明 8 9 int main() { 10 char name[][M] = {"Bob", "Bill", "Joseph", "Taylor", "George"}; 11 int i; 12 13 printf("输出初始名单:\n"); 14 for (i = 0; i < N; i++) 15 printf("%s\n", name[i]); 16 17 printf("\n排序中...\n"); 18 bubble_sort(name, N); // 函数调用 19 20 printf("\n按字典序输出名单:\n"); 21 for (i = 0; i < N; i++) 22 printf("%s\n", name[i]); 23 24 system("pause"); 25 return 0; 26 } 27 28 // 函数定义 29 // 功能:使用冒泡排序算法对二维数组str中的n个字符串按字典序排序 30 void bubble_sort(char str[][M], int n){ 31 char t[100]; 32 for (int i=0;i<n-1;i++){ 33 for(int j=0;j<n-1-i;j++){ 34 if(strcmp(str[j],str[j+1])>0){ 35 strcpy(t,str[j]); 36 strcpy(str[j],str[j+1]); 37 strcpy(str[j+1],t); 38 } 39 } 40 } 41 }
标签:int,void,printf,char,实验,ans,include From: https://www.cnblogs.com/meijianfeng/p/16917107.html