《明解C语言》示例代码和练习代码[第4章]
来源:互联网 发布:java编程思想pdf 编辑:程序博客网 时间:2024/06/15 01:55
第4章 程序的循环控制
示例代码:
示例代码 4-1
/* 输入的整数是奇数还是偶数呢(按照自己的意愿进行循环操作) */#include <stdio.h>int main(void){ int cont; // 要继续吗 do { int no; printf("请输入一个整数:"); scanf("%d", &no); if (no % 2) puts("该整数是奇数。"); else puts("该整数是偶数。"); printf("要重复一次吗?【Yes...0 / No...9】:"); scanf("%d", &cont); } while (cont == 0); return (0);}
示例代码 4-2
/* 逆向显示输入的非负整数 */#include <stdio.h>int main(void){ int num; do { printf("请输入一个非负整数:"); scanf("%d", &num); if (num < 0) puts("请不要输入负整数。"); } while (num < 0); // 当num大于等于0的时候 printf("该整数的逆向显示的结果是"); do { printf("%d", num % 10); // 显示最后一位 num = num / 10; // 右移一位 } while (num > 0); puts("。"); return (0); }
示例代码 4-3
/* 计算输入的非负整数的位数 */#include <stdio.h>int main(void){ int num; int dig; // 位数 do { printf("请输入一个非负整数:"); scanf("%d", &num); if (num < 0) puts("请不要输入负整数。"); } while (num < 0); // 当num大于等于0的时候 dig = 0; do { num = num / 10; // 右移一位 dig = dig + 1; } while (num > 0); printf("该整数的位数是%d。\n", dig); return (0); }
示例代码 4-4
/* 计算并显示从1到5的和 */#include <stdio.h>int main(void){ int no = 1; int sum = 0; do { sum = sum + no; no = no + 1; } while (no <= 5); printf("1到5的合计值是%d。\n", sum); return (0); }
示例代码 4-5
/* 计算并显示从1到5的和 (使用复合赋值运算符) */#include <stdio.h>int main(void){ int no = 1; int sum = 0; do { sum += no; no += 1; } while (no <= 5); printf("1到5的合计值是%d。\n", sum); return (0); }
示例代码 4-6
/* 计算并显示从1到5的和 (使用复合赋值运算符和后置递增运算符) */#include <stdio.h>int main(void){ int no = 1; int sum = 0; do { sum += no; no++; } while (no <= 5); printf("1到5的合计值是%d。\n", sum); return (0); }
示例代码 4-7
/* 从输入整数开始倒数到0 */#include <stdio.h>int main(void){ int no; printf("请输入一个整数:"); scanf("%d", &no); while (no >= 0) { printf("%d ", no); no--; // no的值递减(减少1) } putchar('\n'); // 换行 return (0); }
示例代码 4-8
/* 从输入整数开始倒数到0 (第二版) */#include <stdio.h>int main(void){ int no; printf("请输入一个整数:"); scanf("%d", &no); while (no >= 0) printf("%d ", no--); // no的值在显示之后递减 putchar('\n'); return (0); }
示例代码 4-9
/* 递增显示从0到输入的正整数为止的各个整数 */ #include <stdio.h>int main(void){ int i, no; printf("请输入一个正整数:"); scanf("%d", &no); i = 0; while (i <= no) printf("%d ", i++); // i的值在显示之后递增 putchar('\n'); return (0); }
示例代码 4-10
/* 输入一个整数,连续显示出该整数个* */ #include <stdio.h>int main(void){ int no; printf("请输入一个正整数:"); scanf("%d", &no); while (no-- > 0) putchar('*'); putchar('\n'); return (0); }
示例代码 4-11
/* 输入规定个整数并显示出它们的合计值和平均值 */#include <stdio.h>int main(void){ int i = 0; int sum = 0; int num, tmp; printf("要输入多少个整数:"); scanf("%d", &num); while (i < num) { printf("No.%d: ", ++i); scanf("%d", &tmp); sum += tmp; } printf("合计值:%d\n", sum); printf("平均值:%.2f\n", (double)sum / num); return (0);}
示例代码 4-12
/* 从0递增显示到输入的正整数位止(使用for语句) */#include <stdio.h>int main(void){ int i, no; printf("请输入一个正整数:"); scanf("%d", &no); for (i = 0; i <= no; i++) printf("%d ", i); putchar('\n'); return (0); }
示例代码 4-13
/* 输入一个整数,连续显示出该整数个* (使用for语句) */ #include <stdio.h>int main(void){ int i, no; printf("请输入一个正整数:"); scanf("%d", &no); for (i = 1; i <= no; i++) putchar('*'); putchar('\n'); return (0); }
示例代码 4-14
/* 输入规定个整数并显示出它们的合计值和平均值 (使用for语句) */#include <stdio.h>int main(void){ int i; int sum = 0; int num, tmp; printf("要输入多少个整数:"); scanf("%d", &num); for (i = 0; i < num; i++) { printf("No.%d: ", i + 1); scanf("%d", &tmp); sum += tmp; } printf("合计值:%d\n", sum); printf("平均值:%.2f\n", (double)sum / num); return (0);}
示例代码 4-15
/* 显示九九乘法表 */#include <stdio.h>int main(void){ int i, j; for (i = 1; i <= 9; i++) { for (j = 1; j <= 9; j++) printf("%3d", i * j); putchar('\n'); } return (0); }
示例代码 4-16
/* 输入一个非负整数,连续显示出该非负整数个*(循环次数可任意指定) */#include <stdio.h>int main(void){ int cont; do { int num, i; do { printf("请输入一个非负整数:"); scanf("%d", &num); if (num < 0) puts("\a请不要输入负整数。"); } while (num < 0); // num的值大于等于0 for (i = 1; i <= num; i++) putchar('*'); putchar('\n'); printf("是否继续执行?【Yes...0/No...9】:"); scanf("%d", &cont); } while (!cont); return (0);}
示例代码 4-17
/* 描绘一个长方形 */ #include <stdio.h>int main(void){ int i, j; int width, height; puts("让我们描绘一个长方形。"); printf("宽:"); scanf("%d", &width); printf("高:"); scanf("%d", &height); for (i = 1; i <= height; i++) { // 长方形有height行 for (j = 1; j <= width; j++) // 显示width个* putchar('*'); putchar('\n'); // 换行 } return (0); }
示例代码 4-18
/* 显示一个直角在左下方的直角三角形 */ #include <stdio.h>int main(void){ int i, j, ln; printf("三角形有几层:"); scanf("%d", &ln); for (i = 1; i <= ln; i++) { // i行(i=1,2,...,ln) for (j = 1; j <= i; j++) // 显示i个* putchar('*'); putchar('\n'); // 换行 } return (0);}
示例代码 4-19
/* 显示一个直角在右下方的直角三角形 */ #include <stdio.h>int main(void){ int i, j, ln; printf("三角形有几层:"); scanf("%d", &ln); /* for (i = 1; i <= ln; i++) { for (j = 1; j <= ln; j++) { if (j <= ln - i) putchar(' '); else putchar('*'); } putchar('\n'); } */ for (i = 1; i <= ln; i++) { // i行(i = 1, 2,...,ln) for (j = 1; j <= ln - 1; j++) // 显示ln - i 个空格 putchar(' '); for (j = 1; j <= i; j++) // 显示i个* putchar('*'); putchar('\n'); // 换行 } return (0);}
练习代码 :
练习代码 e4-1
/* 逆向显示输入的非负整数 */#includeint main(void){ int num; do { printf("请输入一个非负整数:"); scanf("%d", &num); if (num < 0) puts("请不要输入负整数。"); } while (num < 0); // 当num大于等于0的时候 printf("%d逆向显示的结果是", num); do { printf("%d", num % 10); // 显示最后一位 num = num / 10; // 右移一位 } while (num > 0); puts("。"); system("pause"); return (0); }
练习代码 e4-2
/* 计算输入的非负整数的位数 */#includeint main(void){ int num; int dig; // 位数 do { printf("请输入一个非负整数:"); scanf("%d", &num); if (num < 0) puts("请不要输入负整数。"); } while (num < 0); printf("%d", num); // 当num大于等于0的时候 dig = 0; do { num = num / 10; // 右移一位 dig = dig + 1; } while (num > 0); printf("的位数是%d。\n", dig); system("pause"); return (0); }
练习代码 e4-3
/* 输入两个整数,计算出它们之间所有整数的和 */#includeint main(void){ int n1, n2, temp; int sum = 0; puts("请输入两个整数:"); printf("整数1:"); scanf("%d", &n1); printf("整数2:"); scanf("%d", &n2); printf("大于等于%d小于等于%d的所有整数的和是", n1, n2); if (n1 > n2 ) { temp = n1; n1 = n2; n2 = temp; } do { sum = sum + n1; n1 = n1 + 1; } while (n1 <= n2); printf("%d。\n", sum); system("pause"); return (0);}
练习代码 e4-4
/* 逆向显示输入的非负整数 (使用复合赋值运算符)*/#includeint main(void){ int num; do { printf("请输入一个非负整数:"); scanf("%d", &num); if (num < 0) puts("请不要输入负整数。"); } while (num < 0); // 当num大于等于0的时候 printf("该整数的逆向显示的结果是"); do { printf("%d", num % 10); // 显示最后一位 num /= 10; // 右移一位 } while (num > 0); puts("。"); system("pause"); return (0); }
练习代码 e4-5
/* 计算输入的非负整数的位数 */#includeint main(void){ int num; int dig; // 位数 do { printf("请输入一个非负整数:"); scanf("%d", &num); if (num < 0) puts("请不要输入负整数。"); } while (num < 0); // 当num大于等于0的时候 dig = 0; do { num /= 10; // 右移一位 dig++; } while (num > 0); printf("该整数的位数是%d。\n", dig); system("pause"); return (0); }
练习代码 e4-6
/* 从输入整数开始倒数到0 (输入负数时不执行换行操作) */#includeint main(void){ int no; printf("请输入一个整数:"); scanf("%d", &no); while (no >= 0) { printf("%d ", no); no--; // no的值递减(减少1) if (no < 0) putchar('\n'); } system("pause"); return (0); }
练习代码 e4-7
/* 从输入整数开始倒数到1 */#includeint main(void){ int no; printf("请输入一个整数:"); scanf("%d", &no); while (no > 0) printf("%d ", no--); // no的值在显示之后递减 putchar('\n'); system("pause"); return (0); }
练习代码 e4-8
/* 递增显示从1到输入的正整数为止的各个整数 (输入小于0时不换行) */ #includeint main(void){ int i, no; printf("请输入一个正整数:"); scanf("%d", &no); i = 1; while (i <= no) printf("%d ", i++); // i的值在显示之后递增 if (no >= 0) putchar('\n'); system("pause"); return (0); }
练习代码 e4-9
/* 递增显示小于输入的正整数的所有偶数 */ #includeint main(void){ int i, no; printf("请输入一个正整数:"); scanf("%d", &no); i = 2; while (i < no) { printf("%d ", i); // i的值在显示之后递增2 i += 2; } if (no >= 0) putchar('\n'); system("pause"); return (0); }
练习代码 e4-10
/* 递增显示小于输入的正整数的所有偶2的乘方数 */ #includeint main(void){ int i, no; printf("请输入一个正整数:"); scanf("%d", &no); i = 2; while (i < no) { printf("%d ", i); i *= 2; } if (no >= 0) putchar('\n'); system("pause"); return (0); }
练习代码 e4-11
/* 输入一个整数,连续纵向显示出该整数个* */ #includeint main(void){ int no; printf("请输入一个整数:"); scanf("%d", &no); while (no-- > 0) { putchar('*'); putchar('\n'); } system("pause"); return (0); }
练习代码 e4-12
/* 计算并显示从1到5的和 (使用复合赋值运算符和后置递增运算符,for语句) */#includeint main(void){ int i; int sum = 0; for (i = 1; i <= 5; i++) sum += i; printf("1到5的合计值是%d。\n", sum); system("pause"); return (0); }
练习代码 e4-13
/* 循环显示1234567890,直到输入的整数位数 */#includeint main(void){ int no; int i; printf("请输入一个整数:"); scanf("%d", &no); for (i = 1; i <= no; i++) printf("%d", i % 10); putchar('\n'); system("pause"); return (0);}
练习代码 e4-14
/* 输入身高范围,间隔值,输出身高值对应标准体重 */ #includeint main(void){ int height_1, height_2; int step; int i; float weight; printf("开始数值(cm):"); scanf("%d", &height_1); printf("结束数值(cm):"); scanf("%d", &height_2); printf("间隔数值(cm):"); scanf("%d", &step); for (; height_1 <= height_2; height_1 += step) printf("%dcm\t%.2fkg\n", height_1, (height_1 - 100) * 0.9); system("pause"); return (0); }
练习代码 e4-15
/* 显示九九乘法表 ,加题头和侧栏 */#includeint main(void){ int i, j; for (i = 0; i <= 9; i++) { if (!i) printf(" |"); else printf("%3d", i); } putchar('\n'); for (i = 0; i <= 9; i++) printf("---"); putchar('\n'); for (i = 1; i <= 9; i++) { printf("%d |", i); for (j = 1; j <= 9; j++) printf("%3d", i * j); putchar('\n'); } system("pause"); return (0); }
练习代码 e4-16
/* 描绘一个横向长方形 */ #includeint main(void){ int i, j; int width, height; puts("让我们描绘一个长方形。"); printf("一边:"); scanf("%d", &width); printf("另一边:"); scanf("%d", &height); for (i = 1; i <= width; i++) { // 长方形有height行 for (j = 1; j <= height; j++) // 显示width个* putchar('*'); putchar('\n'); // 换行 } system("pause"); return (0); }
练习代码 e4-17-1
/* 显示一个直角在左上方的直角三角形 */ #includeint main(void){ int i, j, ln; printf("三角形有几层:"); scanf("%d", &ln); for (i = 1; i <= ln; i++) { for (j = 1; j <= ln - i + 1; j++) putchar('*'); putchar('\n'); } system("pause"); return (0);}
练习代码 e4-17-2
/* 显示一个直角在右上方的直角三角形 */ #includeint main(void){ int i, j, ln; printf("三角形有几层:"); scanf("%d", &ln); for (i = 1; i <= ln; i++) { for (j = 1; j <= ln; j++) if (j <= i - 1) putchar(' '); else putchar('*'); putchar('\n'); } system("pause"); return (0);}
练习代码 e4-18
/* 显示一个金字塔形状 */ #includeint main(void){ int i, j, ln; puts("让我们来描绘一个金字塔。"); printf("金字塔有几层:"); scanf("%d", &ln); for (i = 1; i <= ln; i++) { for (j = 1; j <= 2 * ln; j++) if (j <= ln - i || j >= ln + i) putchar(' '); else putchar('*'); putchar('\n'); } system("pause"); return (0);}
0 0
- 《明解C语言》示例代码和练习代码[第4章]
- 《明解C语言》示例代码和练习代码[第1章]
- 《明解C语言》示例代码和练习代码[第2章]
- 《明解C语言》示例代码和练习代码[第3章]
- 《明解C语言》示例代码和练习代码[第5章]
- 《明解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语言-登录代码示例
- 深入JVM-锁与并发
- java数组
- 黑白棋子的移动(normal) 1310
- Java学习路线
- html5 <canvas> 标签
- 《明解C语言》示例代码和练习代码[第4章]
- Dubbo详解
- 经受时间沉淀的15 个 Android 通用流行框架大全
- 【Leetcode】20. Valid Parentheses
- 关于项目静态资源的调用
- C# 获取Excel的指定单元格的值
- sql语句基本操作
- 读《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之Zookeeper介绍
- 中央帝国精神之神:思规规思律想之轨迹:道思德律:律人:人治:律法:公法天下。