- 数组
- 练习5-1:从头顺次为数组中的元素赋值0 1 2 3 4
- 练习5-2:从头顺次为数组中的元素赋值5 4 3 2 1
- 练习5-3:对5-5修改使从头开始使用5 4 3 2 1 修改
- 练习5-4:修改5-6,将数组a中的元素按照倒序复制到数组b中
- 练习5-5:对5-8修改,改为定义式宏来定义元素个数
- 练习5-6:假设a是double型,b是int型,a=b=1.5; 求a,b?
- 练习5-7:利用对象宏式来说明元素个数
- 练习5-8:逆向显示5-12分布图
- 练习5-9:显示5-8的图
- 多维数组
- 练习5-10:求3行4列矩阵和4行3列的矩阵。
- 练习5-11 输入6名同学2门课程的分数,显示平均分和总分。
- 练习5-12:改写5-13的程序,将两次考试成绩分别储存在三维数组tensu中
#include练习5-2:从头顺次为数组中的元素赋值5 4 3 2 1int main() { int i; int v[5]; for (i = 0; i < 5; i++) { v[i] = i; } for (i = 0; i < 5; i++) { printf("v[%d]=%dn", i, v[i]); } return 0; }
#include练习5-3:对5-5修改使从头开始使用5 4 3 2 1 修改int main() { int i; int v[5]; for (i = 0; i < 5; i++) { v[i] = 5-i; } for (i = 0; i < 5; i++) { printf("v[%d]=%dn", i, v[i]); } return 0; }
#include练习5-4:修改5-6,将数组a中的元素按照倒序复制到数组b中int main() { int i; int v[5] = { 5,4,3,2,1 }; for (i = 0; i < 5; i++) { printf("v[%d]=%dn", i, v[i]); } return 0; }
#include练习5-5:对5-8修改,改为定义式宏来定义元素个数int main() { int i; int a[5] = { 1,2,3,4,5 }; int b[5] = { 0 }; for (i = 0; i < 5; i++) { b[4 - i] = a[i]; } for (i = 0; i < 5; i++) { printf("a[%d]=%d b[%d]=%dn", i, a[i], i, b[i]); } return 0; }
#define NUMBER 7 #include练习5-6:假设a是double型,b是int型,a=b=1.5; 求a,b?int main() { int i; int x[NUMBER]; for (i = 0; i < 7; i++) { printf("x[%d]:", i); scanf("%d", &x[i]); } for (i = 0; i < 3; i++) { int temp = x[i]; x[i] = x[6 - i]; x[6 - i] = temp; } for (i = 0; i < 7; i++) { printf("nx[%d]=%dn", i, x[i]); } return 0; }
答案:a=1;b=1
.
练习5-7:利用对象宏式来说明元素个数#include练习5-8:逆向显示5-12分布图#define NUMBER 80 int main() { int v[NUMBER]; int num; int i; printf("数据个数:"); scanf("%d", &num); for (i = 0; i < num; i++) { printf("%d号:", i + 1); scanf("%d", &v[i]); } printf("{"); for (i = 0; i < num - 1; i++) { printf("%d, ", v[i]); } printf("%d", v[num - 1]); printf("}"); return 0; }
#include练习5-9:显示5-8的图#define NUMBER 80 int main() { int i, j; int num; int tensu[NUMBER]; int bunpu[11] = { 0 }; printf("请输入学生人数:"); scanf("%d", &num); printf("请输入%d 人的分数。n", num); for (i = 0; i < num; i++) { printf("%2d号:", i + 1); scanf("%d", &tensu[i]); bunpu[tensu[i] / 10]++; } puts("n---分布图---"); for (i = 0; i <= 9; i++) { printf("%3d - %3d:", i * 10, i * 10 + 9); for (j = 0; j < bunpu[i]; j++) putchar('*'); putchar('n'); } printf(" 100:"); for (j = 0; j < bunpu[10]; j++) putchar('*'); putchar('n'); return 0; }
#include#define NUMBER 100 int main() { int i, j; int a[NUMBER]; int dis[11]; int b; printf("请输入学生人数:"); scanf("%d", &b); for (i = 0; i < b; i++) { printf("%2d号:", i + 1); do { scanf("%d", &a[i]); if (a[i] < 0 || a[i]>100) printf("请输入0-100之间的数:"); } while (a[i] < 0 || a[i]>100); dis[a[i] / 10]++; } int max = dis[0]; for (i = 1; i < 11; i++) { if (dis[i] > max) max = dis[i]; } for (; max > 0; max--) { for (j = 0; j < 11; j++) { if (dis[j] >= max) printf(" *"); else printf(" "); } putchar('n'); } putchar('n'); for (i = 0; i < 45; i++) { printf("-"); } putchar('n'); for (i = 0; i < 11; i++) { printf("%4d", i * 10); } putchar('n'); return 0; }
多维数组 练习5-10:求3行4列矩阵和4行3列的矩阵。我也是初学者,这题我也不太会,答案是借鉴网上的。
#includeint main() { int a[4][3]; int b[3][4]; int i, j, k, x, y, c[4][4]; printf("输入4*3 个数 以空格隔开:n"); for (i = 0; i < 4; i++) for (k = 0; k < 3; k++) scanf("%d", &a[i][k]); printf("输入3*4 个数 以空格隔开:n"); for (i = 0; i < 3; i++) for (k = 0; k < 4; k++) scanf("%d", &b[i][k]); for (i = 0; i < 4; i++) { //计算矩阵c的值 for (j = 0; j < 4; j++) { c[i][j] = 0; for (k = 0; k < 3; k++) { c[i][j] += a[i][k] * b[k][j]; } } } for (x = 0; x < 4; x++) { for (y = 0; y < 4; y++) printf("%dt", c[x][y]); printf("n"); } return 0; }
练习5-11 输入6名同学2门课程的分数,显示平均分和总分。目前还是高中森一枚,没学过行列式 =.= 答案 为了题目的完整性,参考了网上的优秀答案
#include练习5-12:改写5-13的程序,将两次考试成绩分别储存在三维数组tensu中int main(void) { int i, j; double x, y; x = y = 0; int tensu1[6][1]; int tensu2[6][1]; int sum[6][1]; puts("请依次输入语文和数学的成绩,用空格分隔"); puts("输入分数:"); puts("语文:"); for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) { scanf("%d", &tensu1[i][j]); } } for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) { printf("%6dt", tensu1[i][j]); x += tensu1[i][j]; } } putchar('n'); printf("语文的总分是%.2f,平均分是:%.2f", x, x / 6); putchar('n'); puts("数学:"); for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) { scanf("%d", &tensu2[i][j]); } } for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) { printf("%6dt", tensu2[i][j]); y += tensu2[i][j]; } } putchar('n'); printf("数学的总分是%.2f平均分是:%.2f", y, y / 6); for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) sum[i][j] = tensu1[i][j] + tensu2[i][j]; } putchar('n'); puts("总分"); for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) printf("%6dt", sum[i][j]); } putchar('n'); puts("平均分"); for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) printf("%.2ft", (double)sum[i][j] / 2); } return 0; }
#includeint main(void) { int x, y, z; int tensu[2][4][3] = { { {91, 63, 78}, {67, 72, 46},{89, 34, 53}, {32, 54, 34} } ,{ {97, 67, 82}, { 73, 43, 46 }, { 97, 56, 21 }, { 85, 46, 35 } } }; for (x = 0; x < 2; x++) { for (y = 0; y < 4; y++) { for (z = 0; z < 3; z++) { printf("%4d", tensu[x][y][z]); } printf("n"); } } return 0; }



