Ⅰ c語言中for循環嵌套的流程圖怎麼畫
(1)順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a
=
3,b
=
5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為:
c
=
a;
a
=
b;
b
=
c;
執行結果是a
=
5,b
=
c
=
3如果改變其順序,寫成:a
=
b;
c
=
a;
b
=
c;
則執行結果就變成a
=
b
=
c
=
5,不能達到預期的目的,初學者最容易犯這種錯誤。
順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s
=
3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。
(2)
分支結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
學習分支結構不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
①if(條件)
{
分支體
}
這種分支結構中的分支體可以是一條語句,此時「」可以省略,也可以是多條語句即復合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x<0時其絕對值是為x的反號,因此程序段為:if(x<0)
x=-x;
②if(條件)
else
這是典型的分支結構,如果條件成立,執行分支1,否則執行分支2,分支1和分支2都可以是1條或若干條語句構成。如:求ax^2+bx+c=0的根
分析:因為當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac<0)有兩個共軛復根。其程序段如下:
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x2=(-b-sqrt(d))/2a;
printf(「x1=%8.4f,x2=%8.4f\n」,x1,x2);
}
else
{r=-b/(2*a);
i
=sqrt(-d)/(2*a);
printf(「x1=%8.4f+%8.4fi\n」r,
i);
printf(「x2=%8.4f-%8.4fi\n」r,i)
}
③嵌套分支語句:其語句格式為:
if(條件1)
;
else
if(條件2)
else
if(條件3)
……
else
if(條件n)
else
嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套後,語句結構變得非常復雜,對於程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。
④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else
語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。
(3)循環結構:
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do
–while循環和for循環。四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤,在學習中我們主要學習while、do…while、for三種循環。常用的三種循環結構學習的重點在於弄清它們相同與不同之處,以便在不同場合下使用,這就要清楚三種循環的格式和執行順序,將每種循環的流程圖理解透徹後就會明白如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。特別要注意在循環體內應包含趨於結束的語句(即循環變數值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
在學完這三個循環後,應明確它們的異同點:用while和do…while循環時,循環變數的初始化的操作應在循環體之前,而for循環一般在語句1中進行的;while
循環和for循環都是先判斷表達式,後執行循環體,而do…while循環是先執行循環體後判斷表達式,也就是說do…while的循環體最少被執行一次,而while
循環和for就可能一次都不執行。另外還要注意的是這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,是不能用break和
continue語句進行控制的。
順序結構、分支結構和循環結構並不彼此孤立的,在循環中可以有分支、順序結構,分支中也可以有循環、順序結構,其實不管哪種結構,我們均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現各種演算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
(4)模塊化程序結構
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。
因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。
Ⅱ 用C語言for語句編寫圖形
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
printf("你想列出多少行?\n");
scanf("%d",&n);
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j<i)printf(" ");
else printf("*");
}
printf("\n");
}
return 0;
}
Ⅲ c語言用for循環表示出下面這個圖形 求高手
#include <stdio.h>
int main( )
{ int i,n;
scanf("%d",&n);
for(i=1; i<=n; i++)
printf("%*.*s ",n+i-1,i+i-1,"***************");
for(i=n-1; i>0; i--)
printf("%*.*s ",n+i-1,i+i-1,"***************");
return 0;
}
Ⅳ 用C語言的雙重for循環語句怎麼輸出如下圖形
#include<stdio.h>
void main()
{
int i,j,k;
for(i=0;i<=3;i++) //輸出上面四行*號
{
for(j=0;j<=2-i;j++)
printf(" "); //輸出*號前面的空格
for(k=0;k<=2*i;k++)
printf("*"); //輸出*號
printf("\n");
}
for(i=0;i<=2;i++) //輸出下面三行*號
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}
我已經運行過了,沒有問題!祝你成功!
Ⅳ 用C語言的for語句寫這個圖形的程序
#include<stdio.h>
main()
{inti,j,n;
while(1){
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<i;j++)printf("");
if(n-i>2){
for(j=0;j<3;j++)printf("*");
for(j=0;j<2*(n-i)-5;j++)printf("");
for(j=0;j<3;j++)printf("*");
}
else{
for(j=0;j<(n-i)*2+1;j++)printf("*");
}
printf("
");
}
}
}
如圖所示,望採納。。。。。。
Ⅵ 求助 C語言用for語句循環嵌套輸出以下圖形 蟹蟹啦
按照你的要求編寫的用for語句循環嵌套輸出以下圖形的C語言程序如下
#include <stdio.h>
int main()
{
int i,j,N=6;
for(i=1;i<=N;i++){
for(j=1;j<=N-i+1;j++){
printf("*");
}
printf(" ");
}
return 0;
}
Ⅶ C語言編程:使用for循環輸出如下圖形
記著輸入*最多的個數n即可,還可以實現客戶重新輸入
#include<iostream>
using namespace std;
int main()
{
int i,k,j,n;
char a;
do
{
cout<<"請輸入你所要圖形*最多為n:";
cin>>n;
for(i=1;i<=n;i++)
{
for(k=1;k<=n-i;k++)
cout<<" ";
{
for(j=1;j<=i;j++)
cout<<" *";
cout<<endl;
}
}
for(i=1;i<=n;i++)
{
for(k=1;k<=i;k++)
cout<<" ";
{
for(j=n-i;j>=1;j--)
cout<<" *";
cout<<endl;
}
}
cout<<"你是否需要繼續?(y/n):\n";
cin>>a;
}while(a=='y'||a=='Y');
return 0;
}
Ⅷ 如何用C語言編寫下列圖形(用for語句)
#include<stdio.h>
#include<stdlib.h>
#define N 5
void main()
{
int i,j;
for ( i=0;i<N;i++ )
{ for ( j=0;j<N-i-1;j++ ) printf(" ");
for ( j=0;j<i*2+1;j++ ) printf("%d",(i*2+1)/2+1-abs((i*2+1)/2-j));
printf("
");
}
}
Ⅸ for語句的執行過程和流程圖
for循環是C語言編程中的一種循環語句。
C語言基本簡介:
C語言是一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言描述問題比匯編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%~20%。因此,C語言可以編寫系統軟體。
C語言二十世紀八十年代,美國國家標准局為了避免各開發廠商用的C語言語法產生差異,給C語言制定了一套完整的美國國家標准語法,稱為ANSI C。作為C語言最初的標准。
2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言編譯器普遍存在於各種不同的操作系統中,例如Microsoft Windows, Mac OS X, Linux, Unix等。C語言的設計影響了眾多後來的編程語言,例如C++、Objective-C、Java、C#等。