卡牌魔术
在电影中我们常常看到魔术师让一名观众从纸牌中随机抽一张牌然后放回牌堆,然后轻而易举的找到观众选中的那张牌。那么如何让一个普通人在选择的观众不是“托”的情况下实现魔术呢?很简单,处理牌堆--如果每张纸牌都有独一无二的标记,普通人也可以实现这个魔术,在C语言中如何实现呢,下面我来带大家编写属于自己的第一个C语言程序。
#include<stdio.h>
int main(int argc, const char *argv[])
{
int data1;//定义一个int类型的变量用于接收观众选中的牌
printf("请在1~56之间输入一个数\n");//输出函数,给出提示,模拟观众选牌过程
scanf("%d",&data1);//输入函数,观众选牌。
int A[56];//定义数组,创建一个牌堆
int x=56;
for(int i=0;i<56;i++)
{
A[i]=x;
x--;
}//初始化牌堆,给每张牌编号
int i=0;
while(A[i]!=data1)
{
i++;
}//寻找牌的过程
printf("%d所在的位置为%d\n",data1,i);//给出牌的位置
return 0;
}
第一次看不懂没关系,下面我来为大家一一讲解。
简单程序框架
最简单程序由头文件,主函数组成。
#include <stdio.h>
//#:预处理标识符
include:包含头文件的标准格式
<stdio.h> 标准输入输出的头文件
<>:表示包含标准库中的头文件
"":表示包含自己定义的头文件(可以指定路径),如果找不到该头文件去标准库中找//
int ---->main函数的返回值类型
main ---->主函数,每一个C语言程序有且仅有一个主函数
(int argc, const char *argv[]):main函数的外部参数
int main(int argc, const char *argv[])
{
printf("hello world\n");
printf(); ---->标准的输出函数
("")---->printf()中的内容除了格式符和转义字符外,""号中的内容原封不动的输出
\n --->转义字符表示换行
; ---->C语言中语句结束的标志,如果不加;会报编译错误
return 0; --->返回值
}
int data1;//定义一个int类型变量,这里我选取的是data1,当然你可以根据自己喜欢取名。
输入输出函数
输出函数
printf("格式符",输出表象);
int printf(const char *format, ...);
printf("格式符",输出表象); ---->一个格式符对应一个输出表象
"":可以放格式符,转义字符(\n···),字符串(直接输出)
格式符:
%d:输出十进制有符号整形
%ld:输出十进制有符号长整型
%u:输出十进制无符号数
%o:输出八进制
%#X/%#x:输出十六进制
%s:输出字符串
%c:输出字符
%4d:以4个宽度靠右输出
%-4d:以4个宽度靠左输出
%f/%lf:默认十进制输出小数点后六位
%.mf/%.mlf:输出小数点后m位
转义字符:
\n:换行
\t:制表符(每个数据间隔一个table键的大小)
\\:打印一个\
%%:打印一个%
输入函数
scanf("格式符",变量的地址);
函数原型:
int scanf(const char *format, ...);
scanf("格式符",变量的地址); ---->有几个格式符就要跟几个变量的地址,scanf()的""内一般不放\n
&a; ----->取变量的地址
scanf输入结束时,直接按回车
scanf是一个严格控制格式的函数:双引号内写了什么,用户终端输入就输入什么
数组
引入数组这个概念是为了初始化牌堆。就好像现实生活中你把56张牌放在牌盒里面,数组就好像方牌的牌盒。C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
int 数组名[元素数量];
初始化数组
int A[5] = {1000, 2, 3, 7, 50};
C循环
引出循环这个概念是模拟人一张一张找想要牌的过程
C 语言提供了以下几种循环类型。点击链接查看每个类型的细节。
循环类型 | 描述 |
---|---|
while 循环 | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 |
for 循环 | 多次执行一个语句序列,简化管理循环变量的代码。 |
do...while 循环 | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 |
嵌套循环 | 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 |
循环控制语句
循环控制语句改变你代码的执行顺序。通过它你可以实现代码的跳转。
C 提供了下列的循环控制语句。点击链接查看每个语句的细节。
控制语句 | 描述 |
---|---|
break 语句 | 终止循环或 switch 语句,程序流将继续执行紧接着循环或 switch 的下一条语句。 |
continue 语句 | 告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。 |
goto 语句 | 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 |
学会以上内容就可以举一反三编写属于自己的第一个C语言程序吧