练习5-1c++
/* 依次把一、二、三、四、5 赋值给数组的每一个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; int v[5]; /* int[5]数组 */ for (i = 0; i <5; i++) /* 为数组元素赋值 */ v[i] = i ; for (i = 0; i<5; i++) /* 显示元素的值 */ printf("v[%d] = %d\n", i, v[i]); return 0; }
练习5-2 数组
/* 依次把一、二、三、四、5 赋值给数组的每一个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; int v[5]; /* int[5]数组 */ for (i = 0; i <5; i++) /* 为数组元素赋值 */ v[i] = i + 1; for (i = 4; i >=0; i--) /* 显示元素的值 */ printf("v[%d] = %d\n", i, v[i]); return 0; }
练习5-3spa
/* 从头开始依次用一、二、三、四、5 对数组各元素进行初始化并显示 */ #include <stdio.h> int main(void) { int i; int v[5] = { 5,4,3,2,1 }; /* 初始化 */ for (i = 0; i < 5; i++) /* 显示元素的值 */ printf("v[%d] = %d\n", i, v[i]); return 0; }
练习5-43d
/* 把数组中的所有元素复制到另外一个数组中 */ #include <stdio.h> int main(void) { int i; int a[5] = { 17, 23, 36 }; /* 使用{17,23,36,0,0} 进行初始化 */ int b[5]; for (i = 0; i < 5; i++) { b[4 - i] = a[i]; } puts(" a b"); puts("---------"); for (i = 0; i < 5; i++) printf("%4d%4d\n", a[i], b[i]); return 0; }
练习5-5code
/* 对数组的所有元素进行倒序排列 */ #include <stdio.h> #define number 7 int main(void) { int i; int x[number]; /* int[number] 数组 */ for (i = 0; i < number; 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; } puts("倒序排列了。"); for (i = 0; i < number; i++) /* 显示元素的值 */ printf("x[%d] = %d\n", i, x[i]); return 0; }
练习5-6blog
都会变成 1数学
练习5-7io
#include <stdio.h> #define number 80 int main(void) { 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; }
练习5-8class
/* 输入学生的分数并显示出分布状况 */ #include <stdio.h> #define NUMBER 80 /* 人数上限 */ int main(void) { 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++) { /* 不到100分 */ 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++) /* 100分 */ putchar('*'); putchar('\n'); return 0; }
练习5-9循环
//c语言 最好用c++打开 我也是刚刚学,想了好久写出来的,不知道有没有更好的办法 #include <stdio.h> #define NUMBER 90 //定义人数上限 int main(void) { int i, j, a[NUMBER], dis[11] = { 0 }, b; //ij计数 a成绩数组 dis成绩分布数组 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]++; } //-----------------------------------输出星星的行数=人数最多的那一列的人数 将最多人数的分数段的人数赋给max(准备工做) int max = dis[0]; for (i = 1; i < 11; i++) { if (dis[i] > max) max = dis[i]; } //-----------------------------------输出星星 for (; max > 0; max--)//有max行 外循环max次 { for (j = 0; j < 11; j++)//有11列 循环11次 // 本次循环完毕表示一行输出完毕 须要换行进行下一行输出 //----------------------------------- 当某分数段人数大于等于max时,内循环输出星星直到内循环结束。每次外循环max-- // 好比 最多人数的分数段(max)=3 则人数为3的分数段(经过内循环)各自输出星星 内循环结束 回车 // 第二次外循环(max=2)则人数为3和2的分数段(经过内循环)输出星星 内循环结束 回车 // 第三次外循环(max=1)则人数为3和2和1的分数段(经过内循环)输出星星 回车 外循环结束 { 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
#include<stdio.h> int 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("%d\t", c[x][y]); printf("\n"); } return 0; }
练习5-11
/* 求6名学生在两次考试中1门课程的总分并显示 */ #include <stdio.h> 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("%6d\t", 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("%6d\t", 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("%6d\t", sum[i][j]); } putchar('\n'); puts("平均分"); for (i = 0; i < 6; i++) { for (j = 0; j < 1; j++) printf("%.2f\t", (double)sum[i][j]/2); } return 0; }
练习5-12
#include <stdio.h> int 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]); } putchar('\n'); } } return 0; }