对于循环打印图形的情况总结——基于C语言

看到图就进来了?
进来了你就来对了!
本篇文章花了大量文笔来教你怎么一步步的写不出来这个图形,对的,这个图形本文教不了,但是本文将揭示循环打印的内幕,让你对几种常见情况了熟于心。

一般地,打印图形一般使用for循环: for (initialize; test; update)
2个循环嵌套,一个控制行一个控制列:

外层循环用于控制行(内嵌for循环控制列和换行符),一般的打印图形,行数是固定不变的(即外层循环的所有参数不变)。改变的是内层循环(一行打印几列),通常是两种情况:改变 初始值 循环条件

由此我们可以得出一些结论:
对于 int x;
有上三角:

有下三角:

由表可知:

由此我们可以轻松的输出九九乘法表:

上一节我们了解了,想要改变循环打印图形的情况,只需改变内层循环的 初始值 循环条件 即可。那么,这两种情况真的是一模一样吗?来几个例题一探究竟!

注意观察同样是上三角,输出的内容的不同。

在这里我们只考虑内层循环的值的变化,其中的算法暂不考虑。

规律总结:

前两节仅讨论了单值类型以及只包含一个嵌套循环的程序设计,这节讨论更复杂的程序结构和算法。(为了讨论方便,每次编码都 只改变初始值

注意上面两个图形中,空格和星号的算法是相反的。至此,上下左右四种三角*已经全部列出。

采用自顶向下的方法来分析本程序的算法:
首先删除空格输出的循环控制

然后我们就得到了星号的输出格式:每行2n+1个。
采用改变初始值的方式,即: for(j = ROW - (2 * i +1); j < ROW; j++) putchar('*');

接着,在输出星号之前加入空格输出,为递减输出,即: for(j = i; j < ROW; j++) putchar(' ');

再难一点:

还能不能再难一点?——可以,来一个平行四边形!

待补充。

最后再来一个装比一点的:



  • 瀵逛簬寰幆鎵撳嵃鍥惧舰鐨勬儏鍐垫荤粨鈥斺鍩轰簬C璇█
    绛旓細澶栧眰寰幆鐢ㄤ簬鎺у埗琛岋紙鍐呭祵for寰幆鎺у埗鍒楀拰鎹㈣绗︼級锛涓鑸殑鎵撳嵃鍥惧舰锛岃鏁版槸鍥哄畾涓嶅彉鐨勶紙鍗冲灞傚惊鐜殑鎵鏈夊弬鏁颁笉鍙橈級銆傛敼鍙樼殑鏄唴灞傚惊鐜紙涓琛屾墦鍗板嚑鍒楋級锛岄氬父鏄袱绉嶆儏鍐碉細鏀瑰彉 鍒濆鍊 鍜 寰幆鏉′欢 鐢辨鎴戜滑鍙互寰楀嚭涓浜涚粨璁猴細 瀵逛簬 int x; 鏈変笂涓夎锛氭湁涓嬩笁瑙掞細鐢辫〃鍙煡锛氱敱姝ゆ垜浠彲浠ヨ交鏉剧殑杈...
  • 鎵撳嵃鏈鏃犻檺寰幆閲嶅鎵撳嵃鏄粈涔鎯呭喌? 鎬庝箞涔熷仠姝笉浜嗗晩,姹傚ぇ绁炴寚鐐逛竴涓...
    绛旓細婊氳酱鍗 鏄爣绛剧殑娈嬭兌绉疮閫犳垚鐨勩備篃鏈夊彲鑳芥槸鍗$焊浜銆傛墦鍗伴熷害鎱 鍏堝垽鏂綘鐨勬満鍣ㄦ墦鍗伴熷害璁剧疆浜嗗灏,鍒槸鎱㈤熸墦鍗般傝繕鏈 鎵撳嵃鍥惧舰鎴栬呭ぇ鍙锋枃瀛楃殑鏃跺欐墦鍗版満鎵撳嵃閫熷害涔熶細闄嶄綆銆
  • c++寰幆璇彞 鎵撳嵃鍥惧舰
    绛旓細//鍒嗘瀽锛灏卞墠鍥涜鑰岃█锛屼笂涓琛屾瘮涓嬩竴琛屽皯涓や釜鏄熷彿锛岃屽涓涓┖鏍笺傞噰鐢ㄦ渶甯哥敤鐨刦or寰幆鏉ュ疄鐜銆俰nclude<iostream.h> void main(){ int i,j;for(i=0;i<4;i++)//杈撳嚭鍓嶅洓琛 { for(j=6;j>i;j--)cout<<" ";//杈撳嚭姣忚锛屽厛杈撳嚭鍓嶉潰鐨勭┖鏍硷紝绌烘牸杈撳畬鍚庡啀杈撳嚭鍚庨潰鐨勬槦鍙 for(j=0;j<...
  • 鍦≒ython鐢寰幆鎵撳嵃浠ヤ笅鍥惧舰?
    绛旓細灏辨槸璁捐涓惊鐜粠n鍒1锛屾墦鍗板嚭鏉ユ暟瀛銆傛濊矾鏈夊緢澶氾紝浣犲彲浠ヨ繖鏍锋兂锛氭湁涓瓧绗︿覆鏁扮粍鏄 1234..n-1 鍙︿竴涓暟缁勬槸n-1...4321锛岀劧鍚庡瓧绗︿覆鎷兼帴鐨勬椂鍊欎腑闂村姞涓妌灏辫浜嗐備簬鏄垜浠▼搴忓啓浣滐細def func_3():n = 5 str_1 = str_2 = str_3 = ""for i in range(1,n):str_1 = str_1 + s...
  • 澶т浆璇锋暀涓涓埄鐢寰幆鎵撳嵃鍥惧舰鐨闂?
    绛旓細int main (){ int i,j,x;scanf("%d",&x);for(i=0;i<x;i++){ for(j=0;j<x;j++){ if(i == 0 || i == x-1 || j == 0 || j == x-1)printf("*");else if((i <= x-1-i) && (j == x-1-i || j == i))printf("#");else printf(" ");} print...
  • C璇█鎵撳嵃鍥惧舰,鎴寰幆鍐欎簡涓鍗婁笉浼氫簡
    绛旓細20,40,120};for(i=1;i=<l[5];i++)for(j=1;j=q[1]) printf("*");//short line else if(j==q[0]||j==q[3]) printf(
  • 鍒╃敤寰幆璇彞缂栫▼,鎵撳嵃涓嬪垪鍥惧舰: * * * * * * * * * * * * * * *...
    绛旓細杩欎釜鍏跺疄寰堢畝鍗曞晩锛宖or寰幆灏卞彲浠ヤ簡锛屼綘鐨勮繖涓鍥惧舰鏈夐棶棰橈紝搴旇璐村浘瀵鍚с倊~~鍛靛懙锛屾杩庝綘鐨勭户缁彁闂紝鎴栬呭湪绾胯仈绯绘垜锛岀壒姝ゆ帹鑽鈥斺斺姝︽眽椋炴垚IT锛屼笓涓氭嫑鏀跺悇绉岰/C++浜烘墠锛岃繘琛屼氦娴併傛杩庝綘鐨勫姞鍏ャ倊~~璁╂垜浠叡鍚屼负鎴戜滑鐖卞ソ鐨勪簨涓氬姫鍔涘惂锛岄鍏堬紝鎴戣鎰熻阿鐧惧害锛岀粰鎴戣繖涓満浼氾紝鍙兘鏈潵涔熻繕浼氭劅璋綘锛屾劅...
  • 濡備綍鍒╃敤java鐨刦or寰幆鎵撳嵃濡備笅鍥惧舰,灏辨槸鍊掔殑涔濅節涔樻硶琛
    绛旓細寰幆寮濮嬶紝i鏄9锛屾弧瓒冲惊鐜潯浠讹紝杩涘叆寰幆锛岀劧鍚庨亣鍒扮浜屼釜寰幆锛宩绛変簬1锛宨=9锛宩<=i锛屾弧瓒虫潯浠讹紝缁х画杩涘叆绗簩涓惊鐜紝锛岀劧鍚庡氨寰楀埌r r=9*1,鍗硆=9銆傝緭鍑虹殑鏄痡*i锛屽嵆1*9锛岀劧鍚庡嚭鍐呭惊鐜紝System.out.println()鎹㈣锛屽啀杩涘惊鐜紝杩欐i=8锛岀户缁繘寰幆...杩欐牱浣犲氨寰堟槑鐧借嚜宸卞啓浜嗕粈涔堜簡銆傞敾鐐奸敾鐐...
  • 璇烽棶c++濡備綍鐢寰幆璇彞鎵撳嵃涓嬮潰鐨鍥惧舰?
    绛旓細鐢寰幆鎵撳嵃鍥惧舰鐨C++绋嬪簭濡備笅 include <iostream> include <cmath> using namespace std;int main(){ int i,j,N=5,M=4;//N涓鸿彵褰笂鍗婇儴楂樺害,M涓哄乏杈硅窛 for(i=1;i<=2*N-1;i++){ for(j=1;j<=2*N+1+M;j++){ if(j<=M){ cout<<" ";//杩欓噷鏈変袱涓┖鏍 }else if(j<=...
  • 缂栫▼鎵撳嵃涓嬪垪鍥炬:鎸変笅鍥捐寰嬭緭鍑鍥惧舰(浣跨敤寰幆璇彞瀹炵幇)?
    绛旓細n=2k-1 %鍥惧舰閫掑噺鎴栭掑 2銆佸埄鐢╢or寰幆璇彞锛岃绠楀浘褰㈣緭鍑轰綅缃恱,y銆戝 3銆佷娇鐢╬lot鍑芥暟缁樺埗鍥惧舰绗﹀彿锛岀敱浜巑atlab鏆傛椂鏃犳硶鏄剧ず'$'绗﹀彿锛岀敤'鈻'鏉ユ浛浠o紝鍗 plot(x,y,'gs')4銆佸疄鐜颁唬鐮 clc for k=[1 2 3 4 5]n=(2*k-1);y=k;for i=1:n x=i;plot(x,y,'gs','LineWidth',2...
  • 扩展阅读:评职称的循环教学 ... 可循环标志1-7 ... 评职称小循环是指什么 ... 循环系统总结 ... 塑料盒底的6个标识 ... 正循环钻机的动画演示 ... 利用双重循环打印图形 ... 正反循环钻机适用土层 ... for循环打印菱形图案 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网