C 指针原理揭秘:基于底层实现机制 (12):C 语言快速入门 2.2.5

阅读数:4 2019 年 12 月 11 日 20:21

C指针原理揭秘:基于底层实现机制(12):C语言快速入门 2.2.5

(反复接收玩家输入,直到猜中数字为止)

内容简介
全书分为准备篇、基础篇、揭秘篇、实战篇。本书力求从底层实现机制进行解析,同时配合 C/C++ 编程技巧以及某些指针运用技巧,讲解如何提高程序效能,如何避免滥用指针。
准备篇中介绍 C 指针概述、UBUNTU 及开发环境配置、AT&T 汇编简介、编译原理基础;基础篇将对 AT&T 汇编以及 C 指针基础进行介绍;揭秘篇讲述高级 C 指针的实现机制以及 C++ 指针实现机制,同时讲解编程技巧和 C/C++ 指针高级应用;实战篇讲解解释语言指针、TCC 编译实践、垃圾回收等高级 C 指针应用话题。

C 程序通过“if…else if…else…”语句块来实现条件语句的组合,该组合中包含有多个不同的条件,可用于定义满足各个条件时执行的代码块。语句块格式如下:

复制代码
if (条件 1){
.........// 条件 1 满足时执行的代码块
}
else if(条件 2){
.......... // 条件 2 满足时执行的代码块
}
..........
else if(条件 n){
......... // 条件 n 满足时执行的代码块
}
else{
......... // 以上所有条件均不满足时执行的代码块
}

在程序 2-7 中增加条件语句组合,改进猜数字游戏,实现玩家输入的数字与被猜数字的比较,并根据比较结果为玩家提示数字大了或小了的信息,当玩家输入的数字与被猜数字相同时,提示玩家猜中了,修改后的代码如程序 2-8 所示:

程序 2-8 条件语句组合
复制代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int getnumber(){
srand((int)time(0));
return rand()%499+1;
}
int main(){
int mynum;
int ispass=0;
int guessnum=getnumber();
while (1){
while(1){
printf(" 你好,请输入一个数字:");
scanf("%d",&mynum);
if (mynum>500 ||mynum<1){
printf(" 数字仅限于 1-500 之间\n");
}
else{
printf("\n 你输入的数字是:%d\n",mynum);
break;
}
}
if (mynum>guessnum){
printf(" 数字大了!\n");
}
else if(mynum<guessnum){
printf(" 数字小了!\n");
}
else{
printf(" 祝贺您,您猜中了!\n");
break;
}
}
}

编译并运行程序 2-8,玩家输入数字之后,程序提示输入的数字与被猜的数字相比是大了还是小了,进行几次尝试之后,玩家成功猜中数字,程序提示“祝贺您,您猜中了!”,运行结果如下所示:

复制代码
$ gcc guessnum.c -o myguess
$ ./myguess
你好,请输入一个数字:55
你输入的数字是:55
数字小了!
你好,请输入一个数字:280
你输入的数字是:280
数字小了!
你好,请输入一个数字:350
你输入的数字是:350
数字小了!
你好,请输入一个数字:400
你输入的数字是:400
数字小了!
你好,请输入一个数字:488
你输入的数字是:488
数字大了!
你好,请输入一个数字:420
你输入的数字是:420
数字小了!
你好,请输入一个数字:450
你输入的数字是:450
数字大了!
你好,请输入一个数字:440
你输入的数字是:440
数字大了!
你好,请输入一个数字:430
你输入的数字是:430
祝贺您,您猜中了!

C指针原理揭秘:基于底层实现机制(12):C语言快速入门 2.2.5

购书地址 https://item.jd.com/12533413.html?dist=jd

评论

发布