根据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;
}
下节继续学习基本运算符,加油!