其它输入、输出函数
除了printf,scanf,还有那些输入,输出函数呢?
让我们一起来看看吧
- putchar 函数(字符输出函数)
一般形式:putchar(字符表达式);
功能:向终端(显示器)输出一个字符(可以是可显示的字符,也可以是控制字符或其它转义字符)。 - getchar 函数(字符输入函数)
一般形式:c=getchar();
功能:从终端(键盘)输入一个字符,以回车键确认。函数的返回值就是输入的字符。 - puts 函数(字符串、字符数组中字符串输出函数)
一般形式:puts(char *str);
功能:将字符串或字符数组中存放的字符串输出到显示器上。
例如:putstr(“China\nBeijing\n”); - gets 函数(字符串输入函数)
一般形式:gets(char *str);
功能:接收从键盘输入的一个字符串,存放在字符数组中。
对“顺序”这一概念的补充
我们知道计算机执行程序指令是按顺序的方式执行的,也就是说,按照指定的顺序,一条指令一条指令的执行,执行完一条指定之后,再执行下一条指令。当然现在很多 CPU 都是多核心、多线程的,并发执行多条指令,但对于同一个程序而言,CPU 还是通过顺序的方式来执行指令的。
在 C 语言中程序执行时是按语句来顺序执行的,其中每一条语句都以分号结尾。
如:
int a = 0;
int b = 1;
int c = a + b;
scanf("%d",&a);
printf("c=%d",c);
b += 100;
等等
上面的每一条语句都是以分号结尾,语句可以是定义变量、初始化变量、任何表达式、调用的函数等。可以这样理解:一条语句,就是程序执行的一个动作。CPU 是按顺序的方式执行语句,执行完当前语句之后,再执行下一条语句。多条语句可以写在一行代码里,也可以将每一条语句书写为单独一行代码。但是为了编程人员能够方便的读写程序代码,通常将一条语句书写为单独的一行代码。
for循环
for循环的主体:
for(初始动作(表达式1);条件判断式;每轮需要做的事(表达式2))
循环体语句
当for循环括号内的表达式放在括号外面的时候呢,可以等价于while循环
如:
表达式1;
while(条件判断式)
{
循环体语句;
表达式2;
}
对for循环的理解
for循环像一个计数器:设定一个计数器,初始化它,然后在计数器到达某值之前,
重复执行循环体,而每执行一轮循环,计数器值以一定步进,进行调整,比如加一或者减一。
for可以理解为:对于
举例:
for(i = 10;i > 0; i - -)
//就可以读成:对于一开始的 i =10,当 i > 0后,
//重复做循环体,每一轮循环在做完循环体内语句后,使得i - -
同时,循环控制变量i只在循环里被使用了,在循环外面它没有任何用处
,因此,我们可以把变量i的定义写在for语句里面去(只能在c99编译模式下使用)
如:
int n;
scanf(“%d”,&n);
int fact=1;
for(int i = 1;i<= n;i++){
fact *= i;}
printf(“%d!=%d\n”,n,fact);
- for循环计算循环次数 for循环适用于次数是确定的或者范围是确定的
for(i=0;i<n;i++){……}或者for(i=1;i<=n;i++){……}
左边这个在循环过程中,会走n轮,出现的最小的i为0,最大的i为n-1,在循环结束后,i=n
右边这个在循环过程中,会走n轮,出现的最小的i为1,最大的i为n,在循环结束后,i=n+1 - 当for循环为这个样子的时候:
for(int i =1;i<=n;i++){fact *=i;}
和这个while循环相等
int i=1;
while (i<=1){fact *=i; i++;} - for(初始动作;条件;每轮的动作){
循环体语句}
for中的每一个表达式都可以省略的,此时
for(;条件;)==while(条件)
三种循环
!!!!三种循环的使用小技巧
如果有固定次数,用for
如果必须执行一次,用do-while
其他情况用while
终止循环
break 与 continue(如果是多重循环,这两个只对其所属循环起作用)
break:跳出循环
countine:跳过循环这一轮剩下的语句,进入下一轮循环
通过接力break可以跳出多重循环,但是更方便的是goto 这个东西的用法
例如goto out;那么,程序运行到这一步的时候下一步就是之间跳到循环之外我们所设置的out:所在处