根据C Primer Plus第五章进行学习
文章目录
- 循环简介
- 基本运算符
- 1.赋值运算符:=
- 2.加法运算符:+
- 3.减法运算符:-
- 2.乘法运算符:*
- 总结
1.循环简介
如下代码可以体现不使用循环的局限性:
#include<stdio.h>
#define ADJUST 7.31
int main()
{const double SCALE=0.333;double shoe,foot;shoe=9.0;foot=SCALE*shoe+ADJUST;printf("Shoe size (men's) foot length\n");printf("%10.1f %15.2f inches\n",shoe,foot);return 0;
}
(1)while循环
#include<stdio.h>
#define ADJUST 7.31
int main()
{const double SCALE=0.333;double shoe,foot;printf("Shoe size (men's) foot length\n");shoe=3.0;while(shoe<18.5){foot=SCALE*shoe+ADJUST;printf("%10.1f %15.2f inches\n",shoe,foot);shoe=shoe+1.0; }printf("If the shoe fits,wear it.\n");return 0;
}
当 shoe<18.5
()中的内容就是要被重复的内容。花括号以及被花括号括起来的部分被称为块(block)。该循环一直持续到shoe=19.0。
2.基本运算符
1.赋值运算符:=
bmw=2002;
把值2002赋给变量bmw。也就是说,=左侧为一个变量名,右侧是赋给该变量的值。赋值行为从右往左进行。
i=i+1;
该语句的意思是:找出变量i的值,把该值+1,然后赋给i。
在C语言中,2002=bmw;
类似这样的语句没有意义。因为在这里,2002被称为右值,只能是字面常量,不能给变量赋值,常量本身就是它的值。=左侧必须是一个变量名。
2.加法运算符:+
printf("%d",4+20);
打印的是24,而不是4+20。
int ex;
int why;
int zee;
const int TWO=2;
why=42;
zee=why;
ex=TWO*(why+zee);
这里,ex、why和zee,都是可修改的左值,它们可用于赋值运算符的左侧和右侧。TWO是不可修改的左值,它只能用于赋值运算符的右侧。42是右值,它不能引用某指定内存位置。另外,why和see是可修改的左值,表达式(why+zee)是右值,该表达式不能表示指定内存位置。
3.减法运算符 :-
下面语句表示把200.0赋给num:
num=224.0-24.0;
4.乘法运算符:*
#include<stdio.h>
int main()
{int num=1;while(num<21){printf("%4d %6d\n",num, num*num);num=num+1.0; }return 0;
}
该程序打印数字1~20及其平方。
(1)指数增长
一位统治者奖励学者,学者指着棋盘说,在第1个方格放1粒小麦,第2个放2粒,第3个放4粒,第4个放8粒,以此类推。下列程序计算出每个方格放几粒小麦。并计算了总数。
#include<stdio.h>
#define SQUARES 64
int main()
{const double CROP=2E16;double current,total;int count=1;printf("square grains total ");printf("fractions of \n");printf(" added grains ");printf("world total\n"); total=current=1.0;printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP);while(count<SQUARES){count=count+1;current=2.0*current;total=total+current;printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP); }return 0;
}
下节继续学习基本运算符,加油!