精华内容
下载资源
问答
  • 循环结构程序设计总结 循环结构:反复执行某一条语句或一个语句块。 循环结构有三种实现语句:while语句、do-while语句和for 语句。 一、单元知识点及举例 1.while 语句与do-while语句 #while语句 格式...

           循环结构程序设计总结

     

    循环结构:反复执行某一条语句或一个语句块。

    循环结构有三种实现语句:while语句、do-while语句和for 语句。

     

    一、单元知识点及举例

        1.while 语句与do-while语句

    #while语句

    格式如下:

    while(表达式){

           循环体

     

      含义:先计算表达式(一般成为循环条件)的值,当表达式的值(循环条件成立)为真时,去执行一次循环体。当表达式成立时,不断重复执行循环体。

     

    例一:用while语句,表示1到100中,除八余一的个数

         #include<iostream>

         using namespace std;

         int main( ){

                   int i=100,x=0,y=0;

                    while(i>0){

                    i - -;

                     x=i % 8;

                     if(x= =1)y++;

          }

            cout<<y<<endl;

             return  0;

          }

     

    例二、统计正数

      #include<iostream>

         using namespace std;

         int main( ){

         int x,s = 0;

           cin>>x;

           while(x !=0){

                  if(x>0) s++;

                   cin>>x;

         }

           cout<<s<<endl;

            return 0;

      }

    注意,该程序中的s只是起到计数作用。

     

    #do-while语句

    格式:

    do{

          循环体

      }while(表达式);

     

    含义:先执行一次循环体,然后判断表达式是否成立,如果成立,则返回继续执行循环体,直到表达式不成立,才退出循环。

     

    例 统计正数

    #include<iostream>

         using namespace std;

         int main( ){

         int x,s = 0;

       do{

           cin>>x;

           while(x !=0){

                  if(x>0) s++;

         }while(x!=0)

           cout<<s<<endl;

            return 0;

      }

    比较while语句与do-while语句的区别:

    两者都可以实现循环结构,while语句先判断表达式再执行循环体,do-while语句先执行循环体,再判断表达式。

    2.for语句

    如果执行的操作(循环体)次数是固定的、已知的,则一般使用for语句

     

    格式

    for(表达式1;表达式2;表达式3){

          循环体

     

    例一、斐波那契数列

      #include<iostream>

    using namespace std;

    int main ( ){

           int k;

           cin>>k;

           int k1=1;k2=1;k3=1;

          for(int i=3;i<=k; i++){

               k3=k1+k2;

               k1=k2;

               k2=k3;

        }

    cout<<k3<<endl;

    return 0;

    }

    例二、求平均年龄

    #include<iostream>

    using namespace std;

    int main(){

    int n;

    float s=0;

    scanf("%d",&n);

    for(int i=1;i<=n;i++){

    int x;

    scanf("%d",&x);

    s+=x;

    }

    printf("%.2f\n",s/n);

    return 0;

    }

    3.循环嵌套

    循环语句再套一个循环语句,多重循环。

    例 与七无关的数

    #include<iostream>

    using namespace std;

    int main(){

    int n,ans=0;

    cin>>n;

    for(int i=1;i<=n;i++){

    int flag1=1,flag2=1;

    if(i%7==0) flag1=0;

    int x=i;             //原因:如果直接用i,i会直接缩 

                                              小至0,外循环就不准了。

    while(x&&flag2){

    if(x%10==7)flag2=0;

    x=x/10

    }

    if(flag1&&flag2) ans++;

    }

    cout<<ans<<endl;

    return 0;

    }

    4.break语句cintinue语句

    #break语句:

    遇到break语句,就会立刻跳出循环体,执行循环结构后面的语句。

    例 与七无关的数

    #include<iostream>

    using namespace std;

    int main( ){

    int n,ans=0;

    cin>>n;

    for(int i=1;i<=n;i++){

    int flag1=1,flag2=1;

    if(i%7==0) flag1=0;

    int x=i;

    while(x){

    if(x%10==7){flag2=0;break;}

    x=x/10;

    }

    if(flag1&&flag2) ans++;

    }

    cout<<ans<<endl;

    return 0;

    }

     

    #continue语句:

    遇到continue语句,就会忽略本次循环的后续语句而去执行下一次循环。

    例 与七无关的数

    #include<iostream>

    using namespace std;

    int main(  ){

    int n,ans=0;

    cin>>n;

    for(int i=1;i<=n;i++){

    int flag=1;

    if(i%7==0) continue;

    int x=i;

    while(x){

    if(x%10==7){flag2=0;break;}

    x=x/10;

    }

    if(flag) ans++;

    }

    cout<<ans<<endl;

    return 0;

    }

     

    #break语句和continue语句的应用举例

    素数的判定

    #include<iostream>

    #include<cmath>

    using namespace std;

    int main ( ){

           int x;

            cin>>x;

            for(int i=2;i<=sqrt(x);i++){

            if(x%i==0){

                     cout<<"not";

                        break;

           } 

       } 

       cout<<"prime"<<endl;

        return 0;

       }

    5.程序的调试与跟踪

    作用:快速,准确地发现并改正错误。

    先检查,语句的顺序,思路,逻辑是否有误;语法是否有误;如关键字是否录入错误,变量是否没有定义就使用,变量的大小写问题,标点符号等。

        a.静态查错

            ●变量未赋初值

            ●中间运算结果越界

            ●if-else语句混乱(if语句可以没有else语句与之匹配,else语句总是与它前面的最近的语句相匹配)

            ●实数比较出错

        b.通过添加输出语句调试程序

                不要忘记删掉或者注解掉“调试输出信息的语句”

        a.借助IDE的调试工具实施单步跟踪

            6. 循环结构应用举例

            金币问题

     

          #include<iostream>

          using namespace std;

          int main ( ){

             int i=1,k=1,s=0,n;

             cin>>n;

       while(i<=n){

         for(int j=1;j<=k;j++){

         s+=k;

         i++;

          if(i>n)break;

       }

        k=k+1;

       }

        cout<<s<<endl;

         return 0;

       }

     

    二、易错点,需要注意点

        ■while语句一定需要初始化

        ■一些变量只是作为记号,并不参与循环

        ■do-while语句先做循环再判断,有可能会导致多执行一遍

        ■对于for语句,循环体语句中可以定义变量,但是该变量只能在循环体中使用

        ■break语句结束离它最近的循环

        ■continue语句忽略本循环的后续语句,进行下一次循环三、心得体会

            循环结构的学习让我对c++有了更深刻的理解,在解决一些问题上,让我有了更多的方法去考虑。题目难度的加大,使我真切的认识到自己的不足以及对课本的不熟练。通过上面总结的与七无关的数的解题方法,我看到了每一条语句都有他自己的特点,理解透这些语句可以让自己找到更好的解题思路。

           在解决一些应用题时,无法直接想出解题步骤,可以先对其分析找到方法,再进行解决。这门课真的需要多看书,看书!!

     

     

     

     

    展开全文
  • 实验循环结构程序设计 1.根据求的近似值当n分别取100100010000时记过是多少 n=100 程序设计 n=100; i=1:n; f=1./i^2; x=sum(f; y=sqrt(6*x) 运行结果 x = 3.1321 n=1000 程序设计 n=1000; i=1:n; f=1./i^2; x=sum...
  • C语言程序设计实验报告2010年12 月 1日学 号1028524060姓 名时 间2010年11月23日1,2节专 业计算机科学与技术(JAVA方向)班 级1班实验题目:顺序、选择与循环结构程序设计实验目的:(1)掌握各种类型数据的输人输出的...

    C语言程序设计实验报告

    2010年12 月 1日

    学 号

    1028524060

    姓 名

    时 间

    2010年11月23日1,2节

    专 业

    计算机科学与技术(JAVA方向)

    班 级

    1班

    实验题目:顺序、选择与循环结构程序设计

    实验目的:

    (1)掌握各种类型数据的输人输出的方法,能正确使用各种格式转换

    (2)学会正确使用逻辑运算符和逻辑表达式。

    (3)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。进一步学习调试程序

    实验内容与步骤:

    1、 通过下面的程序掌握各种格式转换符的正确使用方法:

    (1)、输入下面的程序:

    (2)、运行此程序,观察结果:

    分析:不同的输入输出方法,输出的结果的类型是不同的。printf格式字符中的格式字符d,i表示以带符号的 十进制形式输出整数(正数不输出符号);u表示以无符号十进制形式输出整数;c表示以字符形式输出,只输出一个字符;f表示以小数形式输出单、双精度数,隐含输出6位小数。

    (3)、在此基础上将第10、15行改为:

    运行程序,分析结果:

    2、通过下面的实验:

    学会正确使用逻辑运算符和逻辑表达式。

    有一函数:y=x(x<1)且y=2x-1(1≦x<10)且y=3x-1(x≧10)

    写一程序,输入x的值,输出y的值:

    运行结果:

    (3)通过以下实验:熟悉掌握用while语句,do-while语句和for语句实现循环的方法。。。Ⅰ、求1~100的和。

    ①用while语句实现循环

    运行结果:

    ②用do—while语句实现循环:

    运行结果:

    ③用for语句实现循环:

    运行结果:

    从上面的结果可以看出:求1~100的和可以使用三种不同的语句.

    由上面的程序设计可知:使用for语句来实现循环比while语句和do—while语句简单。C语言中的for语句使用最为灵活,功能也较强。

    Ⅱ、while语句和do—while语句的比较:

    输入下面的程序:

    运行情况如下:

    再运行一次:

    运行情况如下:

    再运行一次:

    可以看到:

    当输入的值小于或等于10时,二者得到相同的结果。而当i>10时,二者的结果就不同了。这是因为此时对while循环来说,一次也不执行循环体(表达式“i<=10为假),而对do—while循环语句来说则要执行一次循环体,可以得出结论:当while后面的表达式的值第一次为“真”时,两种循环得到的结果相同;二者结果否则不相同(指二者具有相同的循环体的情况)。

    while语句和do—while语句的比较:

    不同点:while语句的后面无分号,而do—while语句的while语句的后面有分号;while循环先判断表达式再执行循环体的“当型”循环:而do—while循环是先执行循环体,后判断表达式的“当型”循环(因为当条件满足时才执行循环体)

    相同点:两种语句中的循环体都应有使循环趋向于结束的语句,如无趋向于结束的语句,则i的值始终不变,循环永不结束

    分析与体会:

    (1) 在输出时,对不同类型的数据要使用不同的格式符,如果用来输出的格式符与所定义的数据的形式不符,就会发生错误,所以应准确记住各种格式符是以什么形式输出的,这样才能够灵活运用。

    (2) 对同一个问题可以用while语句处理,也可以用do—while语句处理,do—while语句结构可以转换成while结构,由do—while结构的流程图可以看出do—while结构是由一个语句加上一个while结构构成的,在一般情况下,用while语句和用do—while语句处理同一个问题时,若二者的循环体部分是一样的,他们的结果也一样,但是如果while后面的表达式一开始就为假时,两种循环的结果是不一样的。

    实验指导老师

    赵永进

    实验成绩

    展开阅读全文

    展开全文
  • 顺序结构没什么好说的,就像瀑布一样从开头笔直的流向结尾,没有分支也没有循环,简简单单 分支结构设计 1.分支结构就是有选择、需要进行判断的语句,可以依靠判断条件在两条或以上的的分支路径中选择一条并加以...

    顺序结构的设计
    顺序结构没什么好说的,就像瀑布一样从开头笔直的流向结尾,没有分支也没有循环,简简单单

    分支结构的设计
    1.分支结构就是有选择、需要进行判断的语句,可以依靠判断条件在两条或以上的的分支路径中选择一条并加以执行

    2.分支结构语句可以相互嵌套,但要注意必须明确相应的配套关系,编写程序的时候可以使用“缩进”来对应语句相应的层次

    3.C语言的if语句有两种,一种是if…else语句,另一种是if…else if…else语句
    1)if…else语句的格式语法为:

    if(判断表达式)
    语句1;
    [else
    语句2;]

    例:
    int a=2,b=1;
    if(a>b)
    a=b;
    else
    b=a;
    if…else语句的运行如下:先测试判断表达式的值,若为非‘0’值(即为真),就执行语句1;若为‘0’(即为假),就看程序是否带有else分支,若有,就执行语句2;若无就不执行任何操作

    在if…else语句中,else分支是可不写的,即只有一个if语句也是可以的
    例:
    int a=1,b=2;
    if(a>b)
    a=3;
    printf("%d",a);
    最后结果为:1

    2)if…else if…else语句的形式:

    if(判断表达式1)
    语句1;
    else
    if(判断表达式2)
    语句2;
    else
    if(判断表达式3)
    语句3;

    else
    语句n;

    if…else if…else语句的运行如下:先测试判断表达式1,若为非‘0’(即为假),则执行语句1;若为‘0’,就依次测试接下来的else if分支,为非‘0’就执行相应的语句,为‘0’且有else分支就执行else分支,没有就不用进行任何操作

    4.C语言中,还有一种分支结构语句——switch语句
    其格式语法为:

    switch(判别表达式)
    {
    case 常量表达式1:
    语句1;[break;]
    case 常量表达式2:
    语句2;[break;]

    case 常量表达式n:
    语句;[break;]
    [default:语句n+1;]

    例:
    scanf("%d",&month);
    switch(month)
    {
    case 1:sum=0;break;
    case 2:sum=31;break;
    case 3:sum=59;break;
    case 4:sum=90;break;
    case 5:sum=120;break;
    case 6:sum=151;break;
    case 7:sum=181;break;
    case 8:sum=212;break;
    case 9:sum=243;break;
    case 10:sum=273;break;
    case 11:sum=304;break;
    case 12:sum=334;break;
    default:printf(“data error”);break;
    }

    switch语句的运行如下:先计算判别表达式的值,将它与各分支的常量表达式的值进行对比,若相等,则执行相对应的语句;若没有一条分支的常量表达式与它相同,且程序带有default分支,就执行default后的语句,否则不执行任何操作

    注:判别表达式的的类型应该与常量表达式的值一致,且各常量表达式的值必须互补相等

    每个case分支后面没有带上break语句,那当一个case分支的常量表达式满足条件时,程序会在执行相应的语句后将自动执行后面的所有语句

    5.分支结构的if语句还有switch语句可以相互多重嵌套,形成更复杂的结构

    循环结构的设计
    1.C语言中有三种循环语句:while语句,do…while语句,for语句

    2.while语句
    其语法格式为:

    while(表达式)
    语句;

    语句运行如下:先对表达式(即循环条件)进行判断,为非‘0’(即为真)时,执行语句,重复判断执行,直到判断结果为0(即为假)时,结束循环

    3.do…while语句
    语法格式为:

    do
    {
    语句;
    }
    while(表达式);

    例://在变量i=5之前,不断循环自增
    int i=1;
    do
    {
    i++;
    }
    while(i<5);
    语句功能如下 :先执行一次语句,然后判断while语句的循环条件(表达式),若表达式成立,继续循环执行语句,直到循环条件不成后,结束循环

    注:为方便识别,do…while的语句就算是一条也应该用花括号 { } 括起来

    4.for语句
    语句格式为:

    for(表达式1;表达式2;表达式3)
    语句;

    例://将变量i从1到4自增并输出
    for(i=1;i<5;i++)
    printf("%d",i);

    语句功能如下:先计算表达式1(通常为赋值表达式),然后判断作为循环条件的表达式2(通常为关系表达式、逻辑表达式),当循环条件成立,先执行语句,后执行表达式3(通常为赋值表达式),重复执行语句至循环条件不成立

    1. for语句的格式相当于以下形式的while语句:
      表达式1;
      while(表达式2)
      {
      语句;
      表达式3;
      }

    2. 包含在循环条件中的变量被成为循环变量,通过控制循环变量可以控制for语句的循环次数

    3. 在编辑for语句的时候,可以将表达式1放在for语句之前,将表达式2放在循环体之内,具体格式为:
      表达式1;
      for(;表达式2;)
      {
      语句;
      表达式3
      }

    5.break语句
    语句格式:

    break;

    语句功能:强行退出所在循环语句(只有一层),或者跳出离break语句最近的循环,即不会再执行这个循环语句;跳出switch语句

    注:在switch语句中,break语句只会退出switch的循环,不会影响switch语句所在的外循环

    6.continue语句
    语句格式:

    continue;

    语句功能:立即结束本次循环,但不是跳出循环语句,所以只要还能满足循环条件,就能继续下一次循环(这一点和break不同)

    7.goto语句
    语句格式:

    goto 标号;

    1. goto语句的功能是直接跳转到标号处并执行它后面的语句

    2. 标号:指在程序中用于标记的标识符
      定义标号:在标识符后面加上一个冒号就可以定义一个标号了

    注:可能是不符合设计原理,goto语句很少有使用

    展开全文
  • c++循环结构总结 一、什么是循环结构 ⑴分类 循环语句分为三组基本类型 while型循环,do–while型循环,for型循环 三者各有长处与劣势,在编写代码时应择优使用,灵活运用。 ⑵应用 循环语句一般用于解决具有...

    c++循环结构总结

     

    一、什么是循环结构

    ⑴分类

    循环语句分为三组基本类型
    while型循环,do–while型循环,for型循环
    三者各有长处与劣势,在编写代码时应择优使用,灵活运用。

    ⑵应用

    循环语句一般用于解决具有一定循环规律操作的问题,

    比如累加,累乘,或是为有规律的输出、读入问题。

     

    二、while语句

     

    ⑴定义

    1.工作原理:

    首先判断条件表达式的值,如果它是真的,则循环体中的每个语句都被执行。

    然后,再次测试条件,如果条件表达式仍然为 true,则循环体中的每个语句将再次被执行。

    如此循环往复,直到条件表达式被判断为 false。

     

    2.使用范围:

    相对于for循环语句,while语句的使用范围则狭窄的多,

    只能适用于已知循环条件的循环语句。

    所以一般来说我个人倾向于在多次输入的情况下使用while型循环。

     

    ⑵格式

    while(表达式)
    {
      
      // 语句;
    
    }

    例如:

    while(i>0)
    {
         i - - ;
         x = i % 8 ;
         if(x == 1) y++;
     }

    ⑶注意事项

    1.while语句先判断再执行

    2.while后面的括号和括号中的表达式都必须有

    3.表达式可以是常量或常量表达式

    4.如果while是个死循环,break可以跳出

     

    ⑷易错点

    ①while的“()”后面不能加“;”

    根据我的试验发现,如果编译器在发现开始语句块的大括号之前看见了第一行末尾的分号,

    那么它会在分号的位置结束循环。

    尤其是它会将分号前面丢失的语句解释为空语句,也就是什么都不做的语句,

    然后将 while 语句和它后面的任何内容断开。

     

    ②不要忘记大括号

    在编写循环语句时,如果有条件执行的语句是一个语句块,

    则不要忘记将所有的语句都包含在一组大括号中。

    如果大括号意外被忽略,则 while 语句有条件执行的仅仅是紧挨着的下一个语句。

     

    ⑸例题

    打印“Hello”字符串 5 次:

    #include <iostream>
    using namespace std;
    int main()
    {
        int count = 1;
        while (count<= 5)
        {
            cout << "Hello ";
            count = count + 1;
        }
        cout << "\nThat's all!\n";
        return 0;
    }

     

    三、do-while语句

     

    ⑴定义

    do-while语句先执行循环体语句,后判断条件。

    表达式为 true时,继续执行循环体

    先执行再判断语句至少执行一次循环体。

     

    ⑵格式

    do{ 
      
        // 语句;
    
    }while (表达式);

    例如:

    do{
          printf(“@”);
          cin>>x ;
          if(x>0) s++;
    }while(i<=10);

    ⑶注意事项

    1.do-while循环是唯一一个判断条件在语句块之后的句型,

    并且无论条件是否成立,都会执行一次循环

    2.do-while语句在绝大多数情况下都能代替while语句

    3.while语句与do-while语句的区别是:

    do-while语句无论条件表达式的值是真是假,循环体都将至少执行一次;

    而若条件表达式的初值为假,则while语句循环体一次也不会执行。

     

    ⑷易错点

    do-while 循环必须在测试表达式的右括号后用分号终止,

    也就是while后面的“()”后要加“;”,也一点需要与while语句区分开

     

    ⑸例题

    判断素数:

    #include <iostream>
    using namespace std;
    int main(void)
    {
      //输入
      long m;
      
      cout << "please input a number:\n";
      cin >> m;
      
      //处理
      for(int i = 2; i < m; i++) //找m的因数
      {
        if(m % i == 0)
        {
          break;
        }
      }
      //输出
      if(m == i) //判断m是否被小于m的数整除
      {
        cout << m << " is prime.\n";
      }
      else
      {
        cout << m << " isn't prime.\n";
      }
        return 0;
    }

     

     

    四、for语句

     

    ⑴定义

    1.概念:

    for循环是最常用也是最常见的一种循环

    由于其特殊的格式,使for循环可以灵活设置循环次数以及循环条件,

    所以for也可以当做while语句或者do-while语句来使用。

    一般的,for常用来设置已知循环次数的循环。

     

    2.运行流程:

    一般来说,for(表达式1;表达式2;表达式3)中,

    表达式1仅在循环开始时执行一次,

    其后执行表达式2进行循环条件的鉴定,成立则执行循环语句块,不成立则退出循环。

    执行完一次循环后,将执行表达式3,进行变量的增减,

    之后再次测试循环条件,成功继续循环。

    第一步:先计算表达式1,一般是个初始值;

    第二步:然后执行表达式2的判断;

    第三步:如果成立,执行语句,然后执行表达式3,再执行第二步;如果第二步不成立,退出循环。

     

    ⑵格式

    for(表达式1;表达式2;表达式3)
    {
      
       // 语句
    
    }

    例如:

    for(int i=1 ; i<=10 ; i++)
    {
             printf(“@”);
    
     }

    int  i = 1 ;
    for(; i<=10 ; i++)
    {
             printf(“@\n”);
    
     }

    int  i = 1;
    for(;i <= 10;)
    {
              printf(“@\n”);
              i++ ;
     
     }printf(“@\n”);

    ⑶注意事项

    1.for 循环允许编写一个执行特定次数的循环的重复控制结构

    2.表达式1:用于初始化变量,变量可以为局部变量也可以是全局变量,局部变量的作用域仅限于在for循环体内。

      表达式2:为判断条件,当条件成立为真时执行循环,否则跳出

      表达式3:一般用于计数,循环后执行

    3.表达式1,2,3可以都为空不填,表示无条件死循环,可以用break跳出循环。

     

    ⑷易错点

    1.for后面的“()”后不加“;”

    2.某个表达式为空时,需要写一个“;”在该表达式处

    3.不要忘记加大括号

     

    补充

    break:可跳出循环,但是只能跳出距离他最近的一层循环,转而执行循环体的下一条语句。

    【只能用于switch和循环语句中】

    continue:跳过当前循环的剩余语句,结束本次循环,执行表达式3,开始下一轮循环。

    【并不从循环体中跳出,除非已处于循环结束点】

     

    ⑸例题

    制作九九乘法口诀表

    #include<iostream>
    #include<cmath>
    int main()
    {
        using namespace std;
        int  i, j;
        for (i = 1; i <= 9; i++) {
            for (j = 1; j <= i; j++)
                cout << i << "*" << j << "=" << i * j << " ";
            cout << endl;
        }
        return 0;
    }

     

     

    五、循环嵌套

     

    ⑴注意

    1.内循环语句运行一整遍,外循环变化一个值

    2.break终止离的最近的循环语句

    3.continue只结束当前一次运行的循环

     

    ⑵例题

    标记变量的运用:

    数字反转

    描述

    给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

    输入

    输入共 1 行,一个整数N。

    -1,000,000,000 ≤ N≤ 1,000,000,000。

    输出

    输出共 1 行,一个整数,表示反转后的新数。

    样例输入

    样例 #1:

    123

    样例 #2:

    -380

    样例输出

    样例 #1:

    321

    样例 #2:

    -83

    #include<iostream>
    using namespace std;
    int main()
    {
        int N;//输入
        int S=0;//输出新数
        int a=0;//解析出的个位数
        int T=0;//判断是否为负数
        scanf("%d",&N);//输入N
        if(N<0) //判断N是否为负数
        {
            N=0-N; //N先取正
            T=1; //T值为1时,N是负数
        }
        for (int i=0;i<10;i++) 
       {
            int b=N/10; //为解析出N的个位数做准备
            a=N-b*10; //解析出N的个位数为a
            N=N/10;//去掉已解析出来的个位数,N降一位
            S=S+a;//把已解析的a和累加的S赋值给新数
            S=S*10;//新数升一位
            if (N<10)//判断N是否降到个位;
            {
                a=N;
                S=S+a;
                break;
            }
        }
        if(T==1)//判断当T等于1时,S是负数
        {
            S=0-S;
        }
        printf("%d\n",S);
        return 0;
    }

    分析:程序中的T为标记变量,用来标记负数,负数标记为1

     

    六、程序的调试与跟踪

     

    ⑴静态查错

     

    1.变量没有赋值

    2.中间运算结果越界

    如b/(2*a),2*a的结果可能越界,改成b/2/a即可

    3.if-else语句混乱

    if语句可以没有else匹配,else总

    与跟它最近的语句匹配

    4.实数比较出差

    比较两个实数相等,直接用等号往往出差,是浮点运算存在误差造成的,

    解决办法是使用两数差的绝对值与一个相对极小量进行比较

    如if(fabs(x-y)<le-6)

    5.细节错误

    cin>>a>>“  ”>>b不能运行,不可输入空格

    cout<<b<<,<<endl不能运行,应该改为cout<<b<<“,”<<endl

     

    ⑵动态查错

    通过添加输出语句调试程序

    如cout<<x<<" "<<i<<endl;  //用于查看x和i的值

    调试完成后一定要记得把调试语句删除或注解(在这一行最前面加//)

     

    七、题目分析

     

    ⑴犯过的错误:

    1.在do-while语句的while后面忘记加“;”

    2.在循环外使用了循环中定义的变量

     

    ⑵做题中发现的注意点:

    1.在循环语句中,会用到很多的大括号,要注意每个“{”都有一个“}”与之对应,

    为了防止漏加多加括号,最好使对应两个括号在一条直线上,

    多个括号按层次缩进,便于检查,如下:

            {

                   {

                

                     }

              }

      }

     

    2.在if语句中,(表达式1;表达式2;表达式3),

    其中有表达式为空时,可以不写,也可以写个空格,无影响

     

    3.if后循环如果是多条语句一定要加大括号,否则只循环紧跟其后的一条语句

     

    4.循环语句中可以定义变量,但是只能在循环语句中使用,离开循环语句就不存在了

     

    ⑶思路总结:

    1.处理较复杂的题目,要先抽象成简单题目,一定不要先陷入细节的编写,要先从整体入手

     

    2.如果有n个循环,可以先编写一个循环运行,看看输出是否正确,再编写n个循环

     

    3.循环语句中经常使用计数已经,我总结了一下常用的形式,

    格式如下:

    (1)将控制变量从1变到100,增量为1

    for(i=1;i<= 100;i++)

    (2)将控制变量从100变到1,增量为-1

    for(i=100;i>=1;-i)

    (3)控制变量从7变到77,增量为7

    for(i=7;i<=77;i+=7)

    (4)控制变量从20变到2,增量为-2

    for(int i=20;i>=2; i-=2)

    (5)按所示数列改变控制变量值: 99、88、 77、 66、55、 44、33、22、11、0,增量为-11

    for(int j=99;j>=0;j-=11)

    (6)控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2。

    for (int i=1,j=2;i<=99&&j<=100; i+=2,j+=2)

    例如:

    ①输出1-100之间所有偶数

    #include <iostream>
    using namespace std;
    int main (){
      for (int i=2; i<=100 ; i+=2)
      cout << i <<“  ”
       return 0;
    }

    ②利用for循环,计算输出2+2+..+100的和

    #include <iostream>
    using namespace std;
    int main ()
    int sum=0;
    for (int i=1; i<=100 ; ++i)
    sum+=i;
    cout << sum;
    return 0;
    }

     

     

    八、心得感悟

    1.随着循环语句的学习,c++程序的难度明显增大,

    题目不再是看一遍就可以编写出来的简单输入输出题目,而是需要在演草纸上列出计算步骤,用c++语句一部分一部分对应。

    这需要我们在做题的过程中明确把握题目的关键信息,思路清楚,解题过程有条理,并熟练掌握c++基本语句与之对应。

     

    2.在开放了openjudge平台后,已经完成了3次作业。

    做题的过程也是查缺补漏过程。

    我总结了想要使编写的程序accept,必不可少的几点:

    ①正确的解题思路与过程,是重中之重

    ②原样输出的关键词,与题目要完全一致

    ③程序不能只是通过样例,还要考虑各种可能性,并一一通过

    ④检查程序是否完整,没有细节错误,防止在粘贴过程中丢失语句和标点符号等

     

    在c++的学习与做题过程中,我由最初接触时的敬畏逐渐变成了喜爱,慢慢感受到了c++的奇妙与乐趣。

    想要体会c++的美好只从课上学习是难以实现的,课下的自学与钻研才是关键。

    希望我可以在c++的路上长风破浪,越走越远。

    展开全文
  • 安徽工程大学Python程序设计 实验报告班级 物流192班 姓名吕晨学号3190505209 成绩日期 2020.4.6 指导老师修宇【实验名称】实验循环结构程序设计设计实验 )【实验目的】(1)熟悉用while和for语句实现循环的...
  • 循环结构程序设计总结 1.while语句格式:while(表达式){ 循环体 } 2.永远也不会结束的循环成为“死循环”。 3.算术表达式能作为条件表达式的条件。 4.do-while语句格式:do{ 循环体 }while(表达式); 5.while语句...
  • C语言学习之循环结构程序设计总结

    千次阅读 2018-12-03 23:00:03
    只要当循环条件表达式为真(所给条件成立),就执行循环体语句。 一般形式: while(表达式)语句 attention*循环体若包括一个以上的语句,应该用花括号{}括起来 do…while语句 先执行循环体,再检查条件是否...
  • C 语言循环结构语言循环结构 教学设计方案教学设计方案 一 教学内容分析一 教学内容分析 循环结构是面向过程编程中三种结构中最重要的一种结构 学好它是学好这门课程的 关键 循环结构的实质是重复执行一系列语句 ...
  • (1)循环结构程序设计 归纳出哪些操作需要反复执行——循环体 这些操作在什么情况下重复执行——循环控制条件 一旦确定循环体和循环条件,循环结构也就基本确定了。再选用三种循环语句实现循环。 (2)如果实现给定...
  • 通过对循环结构程序设计单元的学习,我已经初步了解了while语句,do-while语句,for语句,break语句和continue语句。 有关循环结构的语句,它使得程序中重复的部分得到极大的压缩,极大程度的方便了程序的编写。...
  • 实验目的 1进一步掌握关系表达式和逻辑表达式 2掌握循环控制条件的描述掌握三种循环结构的特征及相互之间的等价转换掌握DODO WHILE语句的语法规则和使用要求 3掌握循环结构概念和循环结构程序设计方法;精品资料; ...
  • C语言程序设计实验报告选择与循环结构程序设计学 生 实 验 报 告学 院: 软件与通信工程学院课程名称: C++与程序设计专业班级: 通信121姓 名:学 号:学生实验报告(2)学生姓名学号0124036同组人实验项目选择与循环...
  • 循环结构程序设计

    2019-12-03 21:41:41
    循环结构程序设计总结 1、本次课学习到的知识点: (1)循环结构程序设计 归纳出哪些操作需要反复执行——循环体 这些操作在什么情况下重复执行——循环控制条件 一旦确定循环体和循环条件,循环结构也就基本确定了。...
  • C语言程序设计实验与案例周信东主编最新版循实验四环循环结构程序设计实验3 循环结构程序设计学号: 姓名 实验日期: 一、 实验目的和要求(1)熟练掌握利用while、do-while、for语句实现循环结构的方法。(2)掌握循环...
  • (1)循环结构四要素:循环初始化,循环条件,循环体,循环变量修改 (2)循环语句包括:while语句、do-while语句、for语句、break语句 continue语句 (3)循环嵌套:算法框架等问题 2. 实验过程中遇到的...
  • 第 PAGE 1 页 安 徽 工 程 大 学 高级语言程序设计 实 验 报 告 班级 姓名 同组者 / 成绩 日期 2019.10.17 指导教师 张义 实验名称 循环结构程序设计 实验目的 熟悉使用while语句do-while语句和for语句实现循环的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,989
精华内容 12,395
关键字:

循环结构设计实验的总结