明解C语言 入门篇 第八章答案
练习8-1
#include<stdio.h>
#define diff(x,y)(x-y) int main() {
int x;
int y;
printf("x=");
scanf("%d", &x);
printf("y=");
scanf("%d", &y);
printf("%d", diff(x, y)); }
练习8-2
#include <stdio.h>
#define max(x,y) ((x)>(y)?x:y) int main() {
int a, b, c, d;
int max1, max2;
printf("请输入a b c d 的值:\n");
scanf("%d",&a);
scanf("%d", &b);
scanf("%d", &c);
scanf("%d", &d);
max1 = max(max(a, b), max(c, d)); //这个表达式的意思是先求出a,b一组和c,d一组中的较大值,再比较两个较大值求最大值
printf("最大值是%d", max1);
putchar('\n');
max2 = max(max(max(a, b), c), d); //意思是依次比较a和b的较大值,再用较大值依次比较c,d,而求出最大值
printf("最大值是%d", max2); }
练习8-3
#include <stdio.h>
#define swap(int,a,b) {int temp;temp = a;x = y;y = temp;}
int main(void){
int x = ;
int y = ;
swap(int, x, y);
printf("x = %d\ny = %d\n", x, y);
return ;
}
练习8-4
#include <stdio.h>
#define number 6 void bsort(int n, int v[]) {
int i, j;
for (i = ; i < n - ; i++) {
for (j = n - ; j > i; j--) {
if (v[j - ] < v[j]) {
int tem = v[j];
v[j] = v[j - ];
v[j - ] = tem;
}
}
}
} int main() {
int i;
int v[number]; for (i = ; i < number; i++) {
printf("v[%d]=", i);
scanf("%d", &v[i]);
}
putchar('\n'); bsort(number, v);
for (i = ; i < number; i++)
{
printf("v[%d]=%d\n", i, v[i]);
} }
练习 8-5
#include <stdio.h>
enum season{春,夏,秋,冬,Invaild}; enum season select(void) {
int tmp;
do {
printf("0...春 1...夏 2...秋 3...冬 4...结束");
scanf("%d", &tmp);
} while (tmp< 春 || tmp> Invaild);
return tmp;
} int main(void) {
enum season selected;
do {
switch (selected=select())
{
case 春:break;
case 夏:break;
case 秋:break;
case 冬:break; } } while (selected != Invaild);
return ; }
练习8-6
#include <stdio.h>
int factorial(int n) {
int i ;
int sum = ;
for (i = ; i <= n; i++) {
sum*=i;
}
return sum;
}
int main() {
int x;
printf("请输入一个数:");
scanf("%d", &x);
printf("它的阶乘是:%d", factorial(x));
}
练习8-7
#include <stdio.h> int factorial(int n)
{
if (n > )
return n * factorial(n - );
else
return ;
} int combination(int n, int r) { if (n > )
return factorial(n) / (factorial(r) * factorial(n - r));
else
return ;
}
int main() {
int n;
int r;
printf("n=");
scanf("%d", &n);
printf("r=");
scanf("%d", &r);
printf("%d", combination(n, r));
}
练习8-8
#include <stdio.h>
int gcd(int x, int y)
{
int z;
if (x != y)
{
if (x > y)
x -= y;
else
y -= x;
z = gcd(x, y);
}
else
z = x;
return z;
}
int main(void)
{
int x, y;
printf("x:");
scanf("%d", &x);
printf("y:");
scanf("%d", &y);
printf("gcd(%d,%d) = %d\n", x, y, gcd(x, y));
return ;
}
练习8-9
/*---计算标准输入中出现的行数---*/ #include <stdio.h> int main(void)
{
int ch, i = ; while ((ch = getchar()) != EOF) {
if (ch == '\n') i++;
}
printf("%d", i); return ; }
练习8-10
#include <stdio.h> int main(void)
{
int i, ch,j;
int cnt[] = { }; while ((ch = getchar()) != EOF) {
if (ch >= '' && ch <= '')
cnt[ch - '']++; }
puts("数字字符的出现次数");
for (i = ; i < ; i++) {
printf("'%d':", i);
for (j = ; j < cnt[i]; j++) {
putchar('*'); }putchar('\n');
}
return ;
}
明解C语言 入门篇 第八章答案的更多相关文章
- 明解C语言 入门篇 第二章答案
练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...
- 明解C语言 入门篇 第一章答案
练习1-1 #include <stdio.h> int main() { int a; a = 15; int b; b = 37; int c; c = a - b; printf(& ...
- 明解C语言 入门篇 第十章答案
练习10-1 #include <stdio.h> void adjust_point(int*n) { ) *n = ; ) *n = 0; } int main() { int x; ...
- 明解C语言 入门篇 第九章答案
练习9-1 /* 将字符串存储在数组中并显示(其2:初始化) */ #include <stdio.h> int main(void) { char str[] = "ABC\0 ...
- 明解C语言 入门篇 第五章答案
练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; ...
- 明解C语言 入门篇 第四章答案
练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...
- 明解C语言 入门篇 第三章答案
练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...
- 明解C语言 入门篇 第十三章答案
练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...
- 明解C语言 入门篇 第十二章答案
练习12-1 /* 用表示学生的结构体来显示高尾的信息 */ #include <stdio.h> #define NAME_LEN 64 /* 姓名的字符数 */ /*=== 表示学生的 ...
随机推荐
- Shell脚本监控CPU、内存和硬盘利用率
1.监控CPU利用率(通过vmstat工具) #!/bin/bash #==================================================== # Author: l ...
- react生命周期函数的应用-----1性能优化 2发ajax请求
知识点1:每次render其实就会将jax的模板生成一个虚拟dom,跟上一个虚拟dom进行比对,通过diff算法找出不同,再更新到真实dom上去. 1性能优化 每次父组件render一次(除了第一次初 ...
- 【使用篇二】QueryDSL与SpringDataJPA协作使用(20)
QueryDSL是一个Java语言编写的通用查询框架,专注于通过JavaAPI方式构建安全的SQL查询.QueryDSL可以应用到NoSQL数据库上,QueryDSL查询框架可以在任何支持的ORM框架 ...
- CTPN网络理解
本文主要对常用的文本检测模型算法进行总结及分析,有的模型笔者切实run过,有的是通过论文及相关代码的分析,如有错误,请不吝指正. 一下进行各个模型的详细解析 CTPN 详解 代码链接:https:// ...
- 1+x 证书 Web 前端开发中级理论考试(试卷 8 )含答案
1+x 证书 Web 前端开发中级理论考试(试卷 8 ) 官方QQ群 转载请注明来源:妙笔生花个人博客http://blog.zh66.club/index.php/archives/438/ 一.单 ...
- Springboot关于tomcat容器配置、三大组件配置、拦截器配置
原文地址:http://www.javayihao.top/detail/172 1.tomcat配置 Springboot默认使用的就是嵌入式servlet容器即tomcat,对于web项目,如果使 ...
- 通过修改VAD属性破除锁页机制
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 技术学习来源:火哥(QQ:471194425) 注释:因为自己的知 ...
- 易优CMS:if的基础用法
[基础用法] 名称:if 功能:条件判断,比switch判断标签更灵活些,视个人习惯而用. 语法: {eyou:if condition='($eyou.field.has_children > ...
- 网络协议 15 - P2P 协议
大家说起种子,应该都知道是用来下载资源的.那么资源下载都有哪些方式?种子下载又有什么优势呢? 下载电影的两种方式 第一种是通过 HTTP 进行下载.这种方式,有过经历的人应该体会到,当下载文件 ...
- Object-C里的类目,延展,协议
1.类目 类目就是为已存在的类添加新的方法.但是不能添加实例变量.比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现. @interface NSMutableArray ( ...