《明解C语言》示例代码和练习代码[第5章]
来源:互联网 发布:红包破解软件 编辑:程序博客网 时间:2024/05/29 19:34
第5章 数组
示例代码:
示例代码 5-1
/* 输入5名学生的分数并显示它们的总分和平均分 */#include <stdio.h>int main(void){int uchida;int satoh;int hiraki;int masaki;int sum = 0;puts("请输入分数。");printf("1号:");scanf("%d", &uchida);printf("2号:");scanf("%d", &satoh);printf("3号:");scanf("%d", &hiraki);printf("4号:");scanf("%d", &masaki);printf("5号:");scanf("%d", &masaki);sum += uchida;sum += satoh;sum += hiraki;sum += masaki;sum += masaki;printf("总分:%5d\n", sum);printf("平均分:%5.1f\n", (double)sum / 5);return (0);}
示例代码 5-2
/* 依次把1,2,3,4,5赋值给数组每个元素并显示 */#include <stdio.h>int main(void){int vc[5]; // 包含5个元素的数组 vc[0] = 1;vc[1] = 2;vc[2] = 3;vc[3] = 4;vc[4] = 5;printf("vc[0] = %d\n", vc[0]);printf("vc[1] = %d\n", vc[1]);printf("vc[2] = %d\n", vc[2]);printf("vc[3] = %d\n", vc[3]);printf("vc[4] = %d\n", vc[4]);return (0);}
示例代码 5-3
/* 依次把1/2/3/4/5赋值给数组每个元素并显示 (使用for语句) */#include <stdio.h>int main(void){int i;int vc[5]; // 包含5个元素的数组 for (i = 0; i < 5; i++)vc[i] = i + 1;for (i = 0; i < 5; i++)printf("vc[%d] = %d\n", i, vc[i]);return (0);}
示例代码 5-4
/* 将数组的全部元素赋值为(0.0)并显示 */#include <stdio.h>int main(void){int i;double vd[5];for (i = 0; i < 5; i++)vd[i] = 0.0;for (i = 0; i < 5; i++)printf("vd[%d] = %.1f\n", i, vd[i]);return (0);}
示例代码 5-5
/* 从头开始顺次为数组各元素进行初始化(1,2,3,4,5)并进行显示 */#include <stdio.h>int main(void){int i;int vc[5] = {1, 2, 3, 4, 5};for (i = 0; i < 5; i++)printf("vc[%d] = %d\n", i, vc[i]);return (0);}
示例代码 5-6
/* 把数组中的全部元素赋值到另一个数组中 */#include <stdio.h>int main(void){int i;int va[5] = {15, 20, 30};int vb[5];for (i = 0; i < 5; i++)vb[i] = va[i];puts(" va vb");puts("------");for (i = 0; i < 5; i++)printf("%3d%3d\n", va[i], vb[i]);return (0);}
示例代码 5-7
/* 输入数组元素的值并显示 */#include <stdio.h>int main(void){ int i; int vx[5]; for (i = 0; i < 5; i++) { printf("vx[%d]:", i); scanf("%d", &vx[i]); } for (i = 0; i < 5; i++) printf("vx[%d]=%d\n", i, vx[i]); return (0); }
示例代码 5-8
/* 对数组中的全部元素进行倒序排列 */#include <stdio.h>int main(void){ int i; int vx[5]; for (i = 0; i < 5; i++) { printf("vx[%d]:", i); scanf("%d", &vx[i]); } for (i = 0; i < 2; i++) { int temp = vx[i]; vx[i] = vx[4 - i]; vx[4 - i] = temp; } for (i = 0; i < 5; i++) printf("vx[%d]=%d\n", i, vx[i]); return (0); }
示例代码 5-9
/* 输入5名学生的分数并显示出它们的总分和平均分 */#include <stdio.h>int main(void){ int i; int tensu[5]; // 5名学生的分数 int sum = 0; // 总分 puts("请输入学生的分数。"); for (i = 0; i < 5; i++) { printf("%2d号:", i + 1); scanf("%d", &tensu[i]); sum += tensu[i]; } printf("总分:%5d\n", sum); printf("平均分:%5.1f\n", (double)sum / 5); return (0); }
示例代码 5-10
/* 输入5名学生的分数并显示出它们的总分和平均分 */#include <stdio.h>#define NUMBER 5 // 学生人数 int main(void){ int i; int tensu[NUMBER]; // 5名学生的分数 int sum = 0; // 总分 puts("请输入学生的分数。"); for (i = 0; i < NUMBER; i++) { printf("%2d号:", i + 1); scanf("%d", &tensu[i]); sum += tensu[i]; } printf("总分:%5d\n", sum); printf("平均分:%5.1f\n", (double)sum / NUMBER); return (0); }
示例代码 5-11
/* 输入5名学生的分数并显示出其中的最高分和最低分 */#include <stdio.h>#define NUMBER 5 // 学生人数 int main(void){ int i; int tensu[NUMBER]; // 5名学生的分数 int max, min; // 总分 puts("请输入学生的分数。"); for (i = 0; i < NUMBER; i++) { printf("%2d号:", i + 1); scanf("%d", &tensu[i]); } min = max = tensu[0]; for (i = 1; i < NUMBER; i++) { if (tensu[i] > max) max = tensu[i]; if (tensu[i] < min) min = tensu[i]; } printf("最高分:%d\n", max); printf("最低分:%d\n", min); return (0); }
示例代码 5-12
/* 输入5名学生的分数并显示出60分以上的一览表 */#include <stdio.h>#define NUMBER 5 // 学生人数 int main(void){ int i; int snum = 0; // 及格学生人数 int tensu[NUMBER]; // NUMBER名学生的分数 int succs[NUMBER]; // 及格学生一览表(保存及格学生的下标) puts("请输入学生的分数。"); for (i = 0; i < NUMBER; i++) { printf("%2d号:", i + 1); scanf("%d", &tensu[i]); if (tensu[i] >= 60) succs[snum++] = i; // 添加到及格学生一览表中 } puts("及格学生一览表"); puts("--------------"); for (i = 0; i < snum; i++) printf("%2d号(%3d分)\n", succs[i] + 1, tensu[succs[i]]); return (0); }
示例代码 5-13
/* 输入学生的分数并显示出分布情况 */#include <stdio.h>#define NUMBER 80 // 人数上限 int main(void){ int i, j; int num; // 实际的人数 int tensu[NUMBER]; // 学生的分数 int bunpu[11] = {0}; // 分布图 printf("请输入学生人数:"); do { scanf("%d", &num); if (num < 1 || num > NUMBER) printf("\a人数范围[1到%d] :", NUMBER); } while (num < 1 || num > NUMBER); puts("请输入学生的分数。"); for (i = 0; i < num; i++) { printf("%2d号:", i + 1); do { scanf("%d", &tensu[i]); if (tensu[i] < 0 || tensu[i] > 100) printf("\a分数范围[0到100]:"); } while (tensu[i] < 0 || tensu[i] > 100) ; bunpu[tensu[i] / 10]++; } puts("\n----分布图----"); printf(" 100:"); for (j = 0; j < bunpu[10]; j++) putchar('*'); putchar('\n'); for (i = 9; i >= 0; i--) { printf("%3d - %3d:", i * 10, i * 10 + 9); for (j = 0; j < bunpu[i]; j++) putchar('*'); putchar('\n'); } return (0); }
示例代码 5-14
/* 计算2行3列矩阵的和 */#include <stdio.h>int main(void){ int i, j; int ma[2][3] = {{1, 2, 3}, {4, 5, 6}}; int mb[2][3] = {{6, 3, 4}, {5, 1, 2}}; int mc[2][3] ={0}; for (i = 0; i < 2; i++) for (j = 0; j < 3; j++) mc[i][j] = ma[i][j] + mb[i][j]; for (i = 0; i < 2; i++) { for (j = 0; j < 3; j++) printf("%3d", mc[i][j]); putchar('\n'); } return (0);}
示例代码 5-15
/* 计算出1000以内的质数(第1版) */#include <stdio.h>int main(void){ int i, no; unsigned long counter = 0; for (no = 2; no <= 1000; no++) { for (i = 2; i < no; i++) { // 能被整除的不是质数 counter++; // 退出上述循环 if (no % i == 0) break; } if (no == i) // 直到最后也未被整除 printf("%d\n", no); } printf("乘除运算的次数:%lu\n", counter); return (0);}
示例代码 5-16
/* 计算出1000以内的质数(第2版) */#include <stdio.h>int main(void){ int i, no; unsigned long counter = 0; no = 2; // 2是偶数中唯一的质数 printf("%d\n", no++); for (; no <= 1000; no += 2) { // 只把奇数作为判断对象 for (i = 2; i < no; i++) { // 能被整除的不是质数 counter++; // 退出上述循环 if (no % i == 0) break; } if (no == i) // 直到最后也未被整除 printf("%d\n", no); } printf("乘除运算的次数:%lu\n", counter); return (0);}
示例代码 5-17
/* 计算出1000以内的质数(第3版) */#include <stdio.h>int main(void){ int i, no; unsigned long counter = 0; no = 2; // 2是偶数中唯一的质数 printf("%d\n", no++); for (; no <= 1000; no += 2) { // 只把奇数作为判断对象 for (i = 3; i < no; i += 2) { // 只判断能否被奇数整除 counter++; // 退出上述循环 if (no % i == 0) break; } if (no == i) // 直到最后也未被整除 printf("%d\n", no); } printf("乘除运算的次数:%lu\n", counter); return (0);}
示例代码 5-18
/* 计算出1000以内的质数(第4版) */#include <stdio.h>int main(void){ int i, no; int prime[500]; // 用来保存质数的数组 int ptr = 0; // 已经的到的质数个数 unsigned long counter = 0; prime[ptr++] = 2; prime[ptr++] = 3; for (no = 5; no <= 1000; no += 2) { // 只把奇数作为判断对象 for (i = 1; i < ptr; i++) { // 尝试能否被已经得到的质数整除 counter++; if (no % prime[i] == 0) // 能被整除的不是质数 break; // 退出上述循环 } if (ptr == i) // 直到最后也未被整除 prime[ptr++] = no; // 添加到数组中 } for (i = 0; i < ptr; i++) printf("%d\n", prime[i]); printf("乘除运算的次数:%lu\n", counter); return (0);}
示例代码 5-19
/* 计算出1000以内的质数(第5版) */#include <stdio.h>int main(void){ int i, no; int prime[500]; // 用来保存质数的数组 int ptr = 0; // 已经的到的质数个数 unsigned long counter = 0; prime[ptr++] = 2; prime[ptr++] = 3; for (no = 5; no <= 1000; no += 2) { // 只把奇数作为判断对象 int flag = 0; for (i = 1; counter++, prime[i] * prime[i] <= no; i++) { counter++; if (no % prime[i] == 0) { // 能被整除的不是质数 flag = 1; break; } // 退出上述循环 } if (!flag) // 直到最后也未被整除 prime[ptr++] = no; // 添加到数组中 } for (i = 0; i < ptr; i++) printf("%d\n", prime[i]); printf("乘除运算的次数:%lu\n", counter); return (0);}
练习代码:
练习代码e5-1
/* 依次把0,1,2,3,4赋值给数组每个元素并显示 (使用for语句) */#include <stdio.h>int main(void){int i;int vc[5]; // 包含5个元素的数组 for (i = 0; i < 5; i++)vc[i] = i;for (i = 0; i < 5; i++)printf("vc[%d] = %d\n", i, vc[i]);return (0);}
练习代码e5-2
/* 依次把5,4,3,2,1赋值给数组每个元素并显示 (使用for语句) */#include <stdio.h>int main(void){int i;int vc[5]; // 包含5个元素的数组 for (i = 0; i < 5; i++)vc[i] = 5 - i;for (i = 0; i < 5; i++)printf("vc[%d] = %d\n", i, vc[i]);return (0);}
练习代码e5-3
/* 从头开始顺次为数组各元素进行初始化(5,4,3,2,1)并进行显示 */#include <stdio.h>int main(void){int i;int vc[5] = {5, 4, 3, 2, 1};for (i = 0; i < 5; i++)printf("vc[%d] = %d\n", i, vc[i]); return (0);}
练习代码e5-4
/* 把数组中的全部元素倒序赋值到另一个数组中 */#include <stdio.h>int main(void){int i;int va[5] = {15, 20, 30};int vb[5];for (i = 0; i < 5; i++)vb[i] = va[4 - i];puts(" va vb");puts("------");for (i = 0; i < 5; i++)printf("%3d%3d\n", va[i], vb[i]);return (0);}
练习代码e5-5
/* 对数组中的全部元素进行倒序排列 */#include <stdio.h>int main(void){ int i; int vx[8]; for (i = 0; i < 8; i++) { printf("vx[%d]:", i); scanf("%d", &vx[i]); } for (i = 0; i < 5; i++) { int temp = vx[i]; vx[i] = vx[7 - i]; vx[7 - i] = temp; } for (i = 0; i < 8; i++) printf("vx[%d]=%d\n", i, vx[i]); return (0); }
练习代码e5-6
/* double类型赋值给int类型 */int main(void){ double a; int b; a = b = 1.5; printf("a = %f\n", a); printf("b = %d\n", b); return (0); }
练习代码e5-7
/* 计算矩阵x和y的积 */int main(void){ int x[2][3] = {{1, 2, 3}, {4, 5, 6},}; int y[3][2] = {{1, 5}, {5, 3}, {8, 1}}; int z[2][2] = {0}; int i, j; for (i = 0; i < 3; i++) z[0][0] += x[0][i] * y[i][0]; for (i = 0; i < 3; i++) z[0][1] += x[0][i] * y[i][1]; for (i = 0; i < 3; i++) z[1][0] += x[1][i] * y[i][0]; for (i = 0; i < 3; i++) z[1][1] += x[1][i] * y[i][1]; for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) printf("%3d", z[i][j]); putchar('\n'); } system("pause"); return (0);}
1 0
- 《明解C语言》示例代码和练习代码[第5章]
- 《明解C语言》示例代码和练习代码[第1章]
- 《明解C语言》示例代码和练习代码[第2章]
- 《明解C语言》示例代码和练习代码[第3章]
- 《明解C语言》示例代码和练习代码[第4章]
- 《明解C语言》示例代码和练习代码[第6章]
- 《明解C语言》示例代码和练习代码[第7章]
- 《明解C语言》示例代码和练习代码[第8章]
- 《明解C语言》示例代码和练习代码[第9章]
- 《明解C语言》示例代码和练习代码[第10章]
- 《明解C语言》示例代码和练习代码[第11章]
- 《明解C语言》示例代码和练习代码[第12章]
- 《明解C语言第3版.入门篇》练习代码 第11章
- 《明解C语言第3版.入门篇》练习代码 第12章
- C语言代码示例
- c语言数组及练习代码
- 逆向还原C语言代码 练习1
- c语言-登录代码示例
- 记录:关于匿名Handler内存泄露问题
- iOS 应用获取最上层全屏 Window 的正确方法
- 安卓中捕获未捕获的异常信息CrashHandler
- xutils3 对byte[] 、Blob类型数据的存储
- 车牌颜色识别现在的结果
- 《明解C语言》示例代码和练习代码[第5章]
- 字符串拼接和转换的良好习惯
- Java 单链表顺序查找
- 代码审计相关资源分享
- 在ASP.NET MVC中客户端使用文本编辑器检测到有潜在危险的 Request.Form 值。无法访问控制器。
- LeetCode笔记:168. Excel Sheet Column Title
- 网址收藏
- spring-mvc文件上传
- get方式乱码的处理方式的两种方式