• C/C++之循环结构


    C语言中提供四种循环,即goto循环、while循环、do…while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用。这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。

    输入一个正整数n,输出n行由大写字母A开始构成的三角形字符阵列图形(字母超过“Z”从“A”开始输出)。

    运行示例

    Input n:7↙

    A B C D E F G

    H I J K L M

    N O P Q R

    S T U V

    W X Y

    Z A

    B

    这里给出除了goto以外的三个循环结构的示例代码。

    一、for循环

     1 #include<stdio.h>
     2 int main()
     3 {
     4     //n为行数 
     5     int i,j,n;
     6     printf("Input n:");
     7     scanf("%d",&n);
     8     for(i = 0; i < n; i++)
     9     {
    10         for(j = 0; j < n-i; j++)
    11             printf("%c ",(char)('A' + (i * (2 * n - i + 1)/2 + j) % 26));
    12         printf("
    ");
    13     }
    14     return 0; 
    15 }

    二、while循环

     1 #include<stdio.h>
     2 int main()
     3 {
     4     //n为行数 
     5     int i = 0, j, n;
     6     printf("Input n:");
     7     scanf("%d",&n);
     8     while(i < n)
     9     {
    10         j = 0;
    11         while(j < n - i)
    12         {
    13             printf("%c ",(char)('A' + (i * (2 * n - i + 1)/2 + j) % 26));
    14             j++;
    15         }
    16         printf("
    ");
    17         i++;
    18     }
    19     return 0; 
    20 }

    三、do...while循环

     1 #include<iostream>
     2 using namespace std;
     3 int main(void)
     4 {
     5     //n为行数 
     6     int n;
     7     cout << "Input n:";
     8     cin >> n;
     9     int i = 0;
    10     do{
    11         int j = 0;
    12         do
    13         {
    14             cout << (char)('A' + (i * (2 * n - i + 1)/2 + j) % 26) << " ";
    15             j++;
    16         }while(j < n - i);
    17         cout << endl;
    18         i++;
    19     }while(i < n);
    20     return 0; 
    21 }

    作者:耑新新,发布于  博客园

    转载请注明出处,欢迎邮件交流:zhuanxinxin@aliyun.com

  • 相关阅读:
    Balsamiq Mockups完全手册
    LPTSTR、 LPCSTR、LPCTSTR、LPSTR的来源及意义(转)
    Socket编程
    在窗口中绘图(转)
    写博客
    _beginthread还是CreateThread (转)
    CString 与其他类型的转换
    TCP/IP 详述 (转大部分)
    解决svgview控件ax_XXX_Control.SetSRC中出现内存不能为write 遥远的青苹果
    new 与malloc问题 遥远的青苹果
  • 原文地址:https://www.cnblogs.com/Arthurian/p/7979287.html
Copyright © 2020-2023  润新知