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

原文地址:https://www.cnblogs.com/Arthurian/p/7979287.html