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