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語言
- Go語言流程控制之迴圈結構篇Go
- C語言輸出多位小數C語言
- C語言-for迴圈之窮舉法練習C語言
- C語言學習【3】——判斷與迴圈C語言
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- 前端各種迴圈用法總結前端
- 淺談各種語言輸出函式小數點 00 返回問題函式
- 流程控制、 迴圈語句
- 用C語言輸出蛇形矩陣C語言矩陣
- 入門輸出Hello World!——C語言C語言
- Java for迴圈倒序輸出Java
- c語言_遞迴C語言遞迴
- C語言_輸入輸出函式_PAGE5C語言函式
- 單向迴圈連結串列介面設計(C語言)C語言
- 【資料結構】迴圈佇列 C語言實現資料結構佇列C語言
- php中有哪些迴圈控制語句PHP
- C語言實現矩陣螺旋輸出C語言矩陣
- PbootCMS lopp迴圈語句使用用於根據迴圈輸出一段內容boot
- 各種語言的OEP大全
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- Java語言程式設計—迴圈語句Java程式設計
- 一文帶你掌握C語言的迴圈結構C語言
- C語言程式設計之《資料輸出》C語言程式設計
- C語言輸入一個數輸出對應的值C語言
- 鴻蒙開發TypeScript語言:【迴圈】鴻蒙TypeScript
- [iOS]C語言技術視訊-06-程式迴圈結構(for{})iOSC語言
- C語言之輸入輸出C語言
- 04流程控制 for迴圈,while迴圈While
- Dart - 迴圈控制Dart
- Python迴圈控制-forPython
- ES6語法學習筆記之陣列的各種迴圈方法筆記陣列
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- C++變數總結束 | 輸出各種變數的值C++變數
- 各種語言按鈕事件特徵碼事件特徵
- 迴圈輸出——閉包、變數作用域變數