C語言第九篇:各種輸出小星星(迴圈控制)
一、幾個疑惑
1、疑惑(一)——for()語句中使用”++i“和”i++“對程式執行有影響嗎?
- (1)理論上,++i少一次物件構建,故效率比i++高一點;實際上經過編譯器優化後就都一樣了。因此,在實際for()語句使用中,二者沒有區別。
- (2)作為表示式時,i++的取值是i,而++i的取值是i+1,如——int j=++i;和int j=i++; 二者是有區別的。
2、疑惑(二)——for()語句中”++i“與”迴圈體“誰先執行誰後執行?
原始碼
/*
*Copyright (c)2016,劉兵馬俑
*All rights reserved.
*檔名稱:main.c
*作 者:劉兵馬俑
*完成日期:2016/03/25
*版 本 號:v1.0
*問題描述:for()語句中”++i“與”迴圈體“誰先執行誰後執行?
*程式輸出:
*/
#include <stdio.h>
int main()
{
int i=0;
for(i=1;i<=10;++i)
{
printf("*");
}
printf("\n");
return 0;
}
單步執行驗證
通過單步執行,我可以十分確定地相信,程式是按照如下的流程圖順序執行的。
流程圖
結論:
程式首次執行到for()語句時,先判斷當前i的值是否符合迴圈的執行條件,如果符合,程式在執行第一遍迴圈體後,才第一次執行++i。
二、迴圈結構練習——輸出各種小星星
1、輸出
原始碼:
#include <stdio.h>
#define N 6 //N表示一共要列印多少行
int main()
{
int i=0,j=0;
for(i=N;i>=1;--i)
{
for(j=1;j<=2*i-1;++j)
{
printf("*");
}
printf("\n");
}
printf("\n");
return 0;
}
2、輸出
原始碼:
#include <stdio.h>
#define N 6 //N表示一共要列印多少行
int main()
{
int i=0,j=0;
for(i=1;i<=N;++i)
{
for(j=1;j<=N-i;++j)
{
printf(" ");
}
for(j=1;j<=i;++j)
{
printf("*");
}
printf("\n");
}
printf("\n");
return 0;
}
3、輸出
原始碼:
#include <stdio.h>
#define N 6 //N表示一共要列印多少行
int main()
{
int i=0,j=0;
for(i=1;i<=N;++i)
{
for(j=1;j<=i-1;++j)
{
printf(" ");
}
for(j=1;j<=11-2*(i-1);++j)
{
printf("*");
}
printf("\n");
}
return 0;
}
4、輸出
原始碼
#include <stdio.h>
#define N 6 //N表示一共要列印多少行
int main()
{
int i=0,j=0;
for(i=1;i<=N;++i)
{
for(j=1;j<=6-i;++j)
{
printf(" ");
}
for(j=1;j<=11-2*(6-i);++j)
{
printf("*");
}
printf("\n");
}
return 0;
}
5、輸出
原始碼
#include <stdio.h>
#define N 6 //N表示一共要列印多少行
int main()
{
int i=0,j=0;
printf(" * \n");
for(i=2;i<=5;++i)
{
for(j=1;j<=6-i;++j)
{
printf(" ");
}
printf("*");
for(j=1;j<=9-2*(6-i);++j)
{
printf(" ");
}
printf("*\n");
}
printf("***********\n");
return 0;
}
6、輸出
原始碼
#include <stdio.h>
int main( )
{
int i,j,n=6; //n代表上三角行數
//先輸出上三角
for(i=1;i<=n;++i) //輸出n行
{
//輸出第i行
for(j=1; j<=n-i; ++j) //輸出n-i個空格
printf(" ");
for(j=1; j<=2*i-1; ++j) //輸出2*i-1個星號
printf("*");
printf("\n");
}
//下面輸出下三角
for(i=1;i<=n-1;++i) //輸出n-1行
{
//輸出第i行
for(j=1; j<=i; ++j) //輸出i個空格
printf(" ");
for(j=1; j<=2*(n-i)-1; ++j) //輸出2*i-1個星號
printf("*");
printf("\n");
}
return 0;
}
相關文章
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 微控制器C語言實現迴圈移位 (轉)C語言
- c語言基礎語法二——迴圈控制條件語句(完節)C語言
- C語言輸入輸出C語言
- c/c++各種進位制輸出C++
- java語言的各種輸入情況Java
- 雙向迴圈連結串列及各功能函式設計(C語言)函式C語言
- 13,javase程式碼實戰-迴圈控制——for迴圈輸出空心的菱形(四)Java
- C語言實驗——for迴圈列印圖形(迴圈結構)(sdut oj)C語言
- c語言中的三種迴圈語句結構C語言
- 陣列迴圈輸出陣列
- 前端各種迴圈用法總結前端
- C#教程第四課:迴圈控制語句C#
- Go語言流程控制之迴圈結構篇Go
- 【c語言】期望輸出str = hello world 的兩種方法C語言
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- C語言學習【3】——判斷與迴圈C語言
- 第04天C語言(15):for迴圈-注意點C語言
- C語言-for迴圈之窮舉法練習C語言
- C語言輸出多位小數C語言
- 流程控制、 迴圈語句
- swift控制流——迴圈語句Swift
- linux 迴圈控制語句Linux
- PL/SQL迴圈控制語句SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- C語言goto語句以及用goto語句構成迴圈C語言Go
- Java for迴圈倒序輸出Java
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- 淺談各種語言輸出函式小數點 00 返回問題函式
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-WHILE迴圈SQLWhile
- 用C語言輸出蛇形矩陣C語言矩陣
- 入門輸出Hello World!——C語言C語言
- PbootCMS lopp迴圈語句使用用於根據迴圈輸出一段內容boot
- c語言_遞迴C語言遞迴
- php中有哪些迴圈控制語句PHP
- 【資料結構】迴圈佇列 C語言實現資料結構佇列C語言
- 單向迴圈連結串列介面設計(C語言)C語言
- JavaScript迴圈輸出星星圖案JavaScript