linux c:关联变量的双for循环
舉例說明:
比如打印一個倒三角形。
* * * *
?* * *
? * *
?? *
第一層循環為行數,第二層循環為每行打印的*數,且隨著行數的變化,打印的*數也隨著改變。
這就是關聯變量的雙層循環。我的做法是,先設計第一層變量i=4;i>=1;i--,這樣就保證了4行的行數正確打印。
然后,設計第二層變量j=i,j>=1,j--,這樣j就能隨行數的變化,而打印不同的星星數。和第二層并列的第三層用于輸出空格。
比如:第一行i=4,j=4,所以打印4個*號,第二行i=3,則j=4,則打印3個*號,等等依次類推,最后打印除倒立的星星圖。
完整程序如下:
#include <stdio.h>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
int main(void)
{
??? for(int i=4;i>=1;i--){
??????? for(int j=i;j>=1;j--){
??????????? printf("* ");
??????? }
??????? printf("\n");
??????? for(int k=i-1;k<4;k++){
??????????? printf(" ");
??????? }
??? }? ?
??? printf("\n");
??? return 0;
}
注意條件里面的大于和小于號的判斷。另外:如果k<=4,那么就會在第二行輸出2個空格,導致不對稱。
另外一個例子:十轉八進制
/*十進制化為八進制普通版。
?* 注意這種關聯變量的雙層for循環的用法
?*
?*/
#include <stdio.h>
int main(void)
{
?? ?int number;
?? ?int jinzhi=8;
?? ?int weishu=5;
?? ?printf("Enter a number(5wei):");
?? ?scanf("%d",&number);
?? ?printf("%o\n",number);
?? ?for(int i=weishu;i>=1;i--){
?? ??? ?int temp=number;
?? ??? ?for(int j=i-1;j>=1;j--){
?? ??? ??? ?temp/=jinzhi;
?? ??? ?}
?? ??? ?temp%=jinzhi;
?? ??? ?printf("%d",temp);
?? ??? ?
?? ?}
?? ?printf("\n");
?? ?return 0;
}
總結
以上是生活随笔為你收集整理的linux c:关联变量的双for循环的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 记一次链路聚合
- 下一篇: CentOS命令行界面与图形界面切换(图