C 控制语句:循环

1.前导程序

/对用户输入的整数求和
#include<stdio.h>
int main(void)
{
    long num;
    long sum=0L;//把sum初始化为0
    int status;

    printf("please enter an integer to be summed.");
    printf("q to quit!\n");
//    status=scanf("%ld",&num);//注意有这句和没有这一句的区别。
//    while(status==1)//每次循环都为num获取一个新值,并重置status
    while((status=scanf("%ld",&num))==1)
    {
        sum=sum+num;//累加和
        printf("please enter next integer (q to quit)");
    //    status=scanf("%ld",&num);
    }
    printf("Those integers sum to %ld.\n",sum);
    return 0;
}

对用户输入的整数求和

C风格的读循环:status=scanf("%ld",&num);while(status==1){..status=scanf("%ld",&num);}   ----->【while(scanf("%ld",&num)==1){...}】
2.while循环

(1)是使用入口条件的有条件循环,只有位于判断条件之后的单个语句才是循环的部分(一个单独的分号也算作一个语句)。

关于什么时候退出循环
//关于什么时候退出循环
#include<stdio.h>
int main(void)
{
    int n=5;
    while(n<7)
    {
        printf("n=%d\n",n);
        n++;
        printf("Now n=%d\n",n);
    }
    printf("The loop has finished.\n");
    return 0;
}

关于什么时候退出循环

(2)使用关系运算符和表达式  如:<、>、<=、>=、!=、==(关系运算符可以用于字符的比较,但是不能比较字符串,可以比较浮点数,但要小心)

浮点数大小的比较,利用fabs()函数
//浮点数大小的比较,利用fabs()函数。
//不能使用关系运算符来比较字符串
//浮点数比较重只能使用<和>,但舍入误差可能造成两个逻辑上相等的数不等
#include<stdio.h>
#include<math.h>//包含fabs()原型
int main(void)
{
    const double ANSWER=3.14159;//定义一个常量
    double response;
    printf("What‘s is the value of pi?\n");
    scanf("%lf",&response);
    while(fabs(response-ANSWER)>0.0001)
    {
        printf("Try again!\n");
        scanf("%lf",&response);
    }
    printf("Close enough!\n");
    return 0;
}

浮点数大小的比较,利用fabs()函数

3.真值问题

  • 对于C来说一个真表达式的值为1,一个假表达式的为为0。更一般的,所有的非零值都被认为是真,只有0被认为是假。
  • 表达式实际上是数值的。

哪些值为真?
//哪些值为真?
#include<stdio.h>
int main(void)
{
    int n=3;
    while(n)
        printf("%2d is true\n",n--);
    printf("%2d is flase.\n",n);
    n=-3;
    while(n)
        printf("%2d is true.\n",n++);
    printf("%2d is flase.\n",n);
    return 0;
}
//所有的非零值都被认为是真,只有0被认为是假。表达式实际上是数

哪些值为真?

4.关于运算符

  • =和==   a=5;(把a的值赋为5)a==5;(检查a的值是否等于5,它的结果为0或1),【5=a;】这样的形式,便于编译器发现错误
  • 赋值运算符(=)<关系运算符优先级 <算数运算符如(+、—等)
  • 关系表达式的值为1或为0。
  • +=、-=、*=、/=和%=     (x*=3*y+12   等于   x=x*(3*y+12)
  • 逗号运算符【,】a、保证了呗分开的表达式按照从左到右的次序计算;b、整个逗号表达式的值是右边成员的值。x=(y=3,(z=++y+2)+5);的效果是首先把Y赋值给3,把Y递增为4,然后把4加上2,再把结果6赋值给z,接下来把z加5,最后把x赋为结果值11。

5.for循环

使用for循环实现一个立方表
//使用for循环实现一个立方表
#include<stdio.h>
#define  MAX  20
int main(void)
{
    int n,m;
    printf("n\t n*n*n\n");
    for(n=0;n<=MAX;n++)
        printf("%5d\t%5d\n",n,n*n*n);
    return 0;
}

使用for循环实现一个立方表

  • for循环把初始化、测试、更新三个动作都放在了一起。如(:  for(secs=5;secs>0;secs--)  //注意,secs--是在单次循环结束之后才执行的。如果中间的控制表达式为空,则会被认为是真,则这个循环成为死循环。

6.do while循环

  • do{....}while(判断条件);
  • 退出条件循环,循环体内的语句至少执行一次,do while循环本身是一个语句,因此需要一个结束的分号。

入口条件循环
//入口条件循环
//应该把do while循环体仅仅用于那些至少需要执行一次循环的情况
#include<stdio.h>
int main(void)
{
    const int secret_code=13;
    int code_entered;

    printf("To enter the triskaidekaphobia therapy club,\n");
    printf("please enter the secret code number:");
    scanf("%d",&code_entered);
    while(code_entered!=secret_code){

        printf("To enter the triskaidekaphobia therapy club,\n");
        printf("please enter the secret code number:");
        scanf("%d",&code_entered);
    }

    printf("Congratulations! You are cured!\n");
    return 0;
}

入口条件循环

7.数组
(1)一个数组就是线性存储的一系列相同类型的值,数组元素编号是从0开始的。

(2)数组可以使任意数据类型的数组。

(3)如果字符数组包含了空字符\0,那么字符数组的内容就构成一个字符串。

使用循环进行数组的处理
//使用循环进行数组的处理
#include<stdio.h>
#define SIZE  10
#define PAR   72
int main(void)
{
    int index,score[SIZE];
    int sum=0;
    float average;

    printf("Enter %d golf scores:\n",SIZE);
    for(index=0;index<SIZE;index++)
        scanf("%d",score[index]);//输入10个分数 注意这里没有用&
    printf("The scores read in are as follows:\n");
    for(index=0;index<SIZE;index++)
        scanf("5%d",score[index]);//验证输入
    printf("\n");
    for(index=0;index<SIZE;index++)
        sum+=score[index];//求他们的和
    average=(float)sum/SIZE;
    printf("sum of scores=%d,average=%.2f\n",sum,average);
    printf("That‘s a handicap of %.0f.\n",average-PAR);
    return 0;
}

使用循环进行数组的处理

8.使用函数返回值的循环

(1)在调用函数中,可以把返回值赋给另一个变量;可以把他作为一个表达式的值;可以把它作为另一个数的参数,例如printf("%f",power(6.28,3));也可以直接忽略。

(2)使用具有返回值函数的基本要素:声明函数、调用函数、定义函数和使用return关键字。函数的前向声明是必不可少的。

(3)scanf()函数返回接受输入的项目个数,printf()函数返回打印字符的数目。

计算数值的整数次幂
//计算数值的整数次幂
#include<stdio.h>
double power(double n,int p);
int main(void)
{
    double x,xpow;
    int exp;

    printf("Enter a number and the positive integer power");
    printf("to witch.\n the number will be raised,Enter q.");
    printf("to quit.\n");

    while(scanf("%lf%d",&x,&exp)==2)
    {
        xpow=power(x,exp);//函数调用
        printf("%.3g to the power %d is %.5g\n",x,exp,xpow);
        printf("Enter next pair of number or q to quit.\n");
    }
    printf("Hope you enjoyed this power trip--bye!\n");
    return 0;
}
//求n的p次幂的函数
double power(double n,int p)//函数定义
{
    double pow=1;
    int i;

    for(i=1;i<=p;i++)
        pow*=n;
    return pow;//返回Pow的值
}

计算数值的整数次幂

时间: 2024-09-28 17:13:59

C 控制语句:循环的相关文章

javascript流程控制语句-循环

一.JS中的流程控制语句(if语句) 格式: if(条件1){ 如果条件1成立,执行这里代码 }else{ 如果条件不成立,则执行这里代码 } 格式: if(条件1){ 如果条件1成立,执行这里代码 }else if(条件2){ 如果条件2成立,执行这里代码 }else if(条件3){ 如果条件3成立,执行这里代码 }.......... else{ 如果条件1到条件n都不成立,执行这里代码 } 嵌套格式: if(条件1){ if(条件){ 如果条件成立,执行这里代码 } }else{ 如果条

python0.6-----条件控制语句/循环语句及使用技巧

条件控制语句: if条件控制语句: 格式: if 表达式: 语句1(语句前面必须带有一个tab,否则认为没有语句) 逻辑:表达式成立,则执行语句1,否则跳过 if-else条件控制语句: 格式: if 表达式1: 语句1 else: 语句2 逻辑:表达式1成立,则执行语句1,否则执行语句2 if-elif-else条件控制语句: 格式: if 表达式1: 语句1 elif 表达式2: 语句2 elif 表达式3: 语句3 ...... ...... ...... elif 表达式n: 语句n e

python控制语句---循环结构语句

这次主要把循环结构的控制语句补上,主要包含while.for.continue.break.循环嵌套.主要写一些基本的认识以及包含的一些实例.当只有唯一路径且只跑一次的时候选择上一节中的选择结构语句就可以了,但是当执行一次或者重复循环执行时就需要另辟蹊径了,那就来认识一下这个蹊径吧. 一.while 语句 1.干啥用? 答:主要用于循环执行程序,既在某种条件下,循环执行某段程序,进而完成对需要重复处理的相同任务处理工作. 2.语法形式长啥样? 答:while 判断条件: 执行语句 其中,执行语句

JS 引入方式 基本数据类型 运算符 控制语句 循环 异常

一.JS引入方式 什么是JavaScript? JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互,JavaScript是浏览器解释执行的. JavaScript的嵌入方式 1.行间事件 <input type="button" name="clicktook" onclick= "alert("ok!");"> 2.页面scrip标签嵌入

C控制语句:循环

#include<stdio.h>int main(void){long num;long sum = 0L;int status; printf("Please enter an integer to be summed: ");printf("(q to quit)"); while((status = scanf("%ld",&num)) == 1) //==运算符的优先级比=要高{sum = sum +num;prin

IT兄弟连 Java语法教程 流程控制语句 循环结构语句4

do-while循环 Java还有一种循环是do-while.与for.while这些在循环顶部判断条件表达式的语句不同,do-while是在循环底部进行条件表达式的检查.这意味着do-while循环至少要执行一次循环体.do-while循环的语法格式如下: do{ 循环体; }while(循环条件); 与while循环不同的是,do-while循环的循环条件后必须有一个分号,这个分号表明循环结束. 例:下面的程序演示了do-while循环的执行流程: public class DoWhileD

IT兄弟连 Java语法教程 流程控制语句 循环结构语句1

循环语句可以在满足循环条件的情况下,反复执行某一点代码,这段被重复执行的代码被称为循环体,当反复执行这个循环体时,需要在合适的时候把循环条件该为假,从而结束循环,否则循环将一直执行下去,形成死循环.循环语句可能包含如下4个部分: 1.初始化语句:一个或多条语句,这些语句用于完成一些初始化工作,初始化语句在循环开始之前执行. 2.循环条件:这是一个boolean表达式,这个表达式能决定是否执行循环体. 3.循环体:这个部分是循环的主体,如果循环条件允许,这个代码块将被重复执行.如果这个代码块只有一

IT兄弟连 Java语法教程 流程控制语句 循环结构语句2

双重for循环 如果把一个循环放在另一个循环体中,那么就可以形成嵌套循环,也就是双重for循环,当然嵌套循环也可以是for循环嵌套while循环,也可以是while循环嵌套while循环……,即各种类型的循环都可以作为外层循环,也可以作为内层循环. 当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行--只是内层循环需要反复执行自己的循环体而已.当内层循环执行结束,且外层循环的循环体执行结束时,则再次计算外层循环的循环条件,决定是否再

IT兄弟连 Java语法教程 流程控制语句 循环结构语句3

while循环 Java中的另外一种循环是while循环.while循环的语法格式如下: while(条件表达式){ 循环体; } 其中条件表达式定义了控制循环的条件,可以使任何有效的boolean表达式,条件为真时,循环会迭代.条件为假时,程序控制流会立刻转移到循环后面的代码. 例:下面是一个使用while循环输出字母表的简单示例: public class WhileDemo{ public static void main(String[] args){ char ch = 'a'; wh

控制语句-循环结构(while)

循环结构: 循环结构可以减少源代码重复书写的工作量,用来描述重复执行某段算法的问题,循环结构是程序设计中最能发挥计算机特长的程序结构. 循环结构可以看作是一个条件判断语句和一个向回转向语句的组合. 循环结构的四要素: 1.循环变量 2.循环条件 3.循环体 4.迭代器 while循环语句: while循环是最基本的循环,while语句在开始前会先判断布尔表达式的结果,若为true(真),则执行循环体,否则,跳出循环. 表达式: while(布尔表达式){ //while先判断布尔表达式的值,为t