练习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语言 入门篇 第八章答案的更多相关文章

  1. 明解C语言 入门篇 第二章答案

    练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...

  2. 明解C语言 入门篇 第一章答案

    练习1-1 #include <stdio.h> int main() { int a; a = 15; int b; b = 37; int c; c = a - b; printf(& ...

  3. 明解C语言 入门篇 第十章答案

    练习10-1 #include <stdio.h> void adjust_point(int*n) { ) *n = ; ) *n = 0; } int main() { int x; ...

  4. 明解C语言 入门篇 第九章答案

    练习9-1 /* 将字符串存储在数组中并显示(其2:初始化) */ #include <stdio.h> int main(void) { char str[] = "ABC\0 ...

  5. 明解C语言 入门篇 第五章答案

    练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; ...

  6. 明解C语言 入门篇 第四章答案

    练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...

  7. 明解C语言 入门篇 第三章答案

    练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...

  8. 明解C语言 入门篇 第十三章答案

    练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...

  9. 明解C语言 入门篇 第十二章答案

    练习12-1 /* 用表示学生的结构体来显示高尾的信息 */ #include <stdio.h> #define NAME_LEN 64 /* 姓名的字符数 */ /*=== 表示学生的 ...

随机推荐

  1. 017.Kubernetes二进制部署检查集群

    一 验证集群功能 1.1 检查节点状态 [root@k8smaster01 ~]# kubectl get nodes 1.2 创建测试文件 [root@k8smaster01 ~]# cd /opt ...

  2. Office2019新增哪些功能

    上一篇文章我们知道了office为什么没有2017/2018版本,那个是因为微软office是时隔三年一更新的软件,这不office2019就出来了.一款软件,只有不断的完善自身功能,进行不断的更新, ...

  3. [译]Vulkan教程(24)索引buffer

    [译]Vulkan教程(24)索引buffer Index buffer 索引buffer Introduction 入门 The 3D meshes you'll be rendering in a ...

  4. 了解Github

    一.什么是Github Github是全球最大的社交编程及代码托管网站(https://github.com/). Github可以托管各种git库,并提供一个web界面(用户名.github.io/ ...

  5. [转]为什么group by后面不能使用别名(除MySQL)

    同事工作中遇到一个问题: select   count(billingdate),to_char(billingdate,'YYYYmm') month from tu_trade where to_ ...

  6. 爬虫最新的库requests-html库总结

    requests-html是比较新的爬虫库,作者和requests是同一个作者 一.安装依赖 pip install requests-html 我们可以在安装的时候看到他安装了lxml,reuqes ...

  7. 使用文件流与使用缓冲流完成文件的复制操作性能对比,文件流 FileInputStream FileOutputStream 缓冲流: BufferedInputStream BufferedOutputStream

    package seday06; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOExc ...

  8. Java操作数据库——使用连接池连接数据库

    Java操作数据库——使用连接池连接数据库 摘要:本文主要学习了如何使用JDBC连接池连接数据库. 传统方式和连接池方式 传统方式的步骤 使用传统方式在Java中使用JDBC连接数据库,完成一次数据库 ...

  9. Hacking/Penetrating tester bookmark collection

    Blogs http://carnal0wnage.blogspot.com/ http://www.mcgrewsecurity.com/ http://www.gnucitizen.org/blo ...

  10. 使用bean接收ajax表单提交数据包含文件上传

    这几天写带图片上传的表单提交,一个配置小程序活动弹出框样式的功能,记录一下一些需要注意的地方 首先是 前端 JSP 文件的表单 <form class="search-wrapper& ...