用C語言編寫簡單的程序_第1頁
用C語言編寫簡單的程序_第2頁
用C語言編寫簡單的程序_第3頁
用C語言編寫簡單的程序_第4頁
用C語言編寫簡單的程序_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

用C語言編寫

簡單的程序有且僅有一個main(){……}(主函數(shù))框架;語句均由分號“;”結(jié)尾;所有變量使用前須聲明(說明)其類型;有一些函數(shù)(標準庫函數(shù)或自定義函數(shù))調(diào)用;……..會有#號開頭的一些編譯預處理代碼行;會有注釋,用“/**/”或“//”標注。上次課學過的例1計算并輸出三角形面積例2計算并輸出1+2+……+100例3判斷素數(shù)這次課要講的例1計算并輸出三角形面積已知三角形的三條邊長分別為a、b、c,求三角形面積。其中:s=(a+b+c)/2#include<stdio.h> #include<math.h>main(){inta=3,b=4,c=5;floats,area;s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%d,b=%d,c=%d,s=%f\n",a,b,c,s);printf("area=%f\n",area);}#include<stdio.h> #include<math.h>main(){floata=3,b=4,c=5,s,area;s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f,b=%f,c=%f,s=%f\n",a,b,c,s);printf("area=%7.2f\n",area);}#include<stdio.h> #include<math.h>main(){floata=3,b=4,c=5,s,A;s=1.0/2*(a+b+c);

A=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f,b=%f,c=%f,s=%f\n",a,b,c,s);printf(“面積=%7.2f\n",A);}數(shù)據(jù)輸出Printf格式輸出函數(shù)按一定格式輸出若干任意類型的數(shù)據(jù)。printf輸出時會對輸出項求值。格式:

printf("格式控制字符串",輸出項表列);例:printf("a=%db=%f",a,b);

函數(shù)名輸出表列普通字符格式說明數(shù)據(jù)輸出printf格式輸出函數(shù)格式說明符的意義格式符意義例

子結(jié)果%d十進制inta=567;printf("%d“,a);567%x十六進制inta=567;

printf("%x“,a);0x237%o八進制inta=567;

printf("%o“,a);1067%u無號的十進制整數(shù)inta=45;printf("%u“,a);45%c字符chara=‘A’;

printf("%c“,a);A%s字符串char*s=“This;”printf("%s“,s);This%e浮點表示法輸出floata=567.789;

printf("%e“,a);5.68E+02%f小數(shù)形式floata=567.789;printf("%f“,a);567.789%ge和f中較短的一種floata=567.789;printf("%g“,a);567.789%%百分號本身

printf("%%");%數(shù)據(jù)輸出printf格式輸出函數(shù)printf附加格式說明符:l長整型整數(shù),加在d、o、x、u前Llongdouble型數(shù),加在f、e、g前m表示數(shù)據(jù)占用的最小寬度數(shù)據(jù)寬度大于m,按實際寬度輸出數(shù)據(jù)寬度小于m時,補空格n對實數(shù)表示輸出n位小數(shù)對字符串表示最多輸出的字符個數(shù),如:printf("%5.2f\n%6.1f\n",f1,f2);-改變輸出內(nèi)容的對齊方式:缺省為右對齊例1計算并輸出三角形面積已知三角形的三條邊長分別為a、b、c,求三角形面積。其中:s=(a+b+c)/2。若三角形的三條邊長是變量,則在程序運行時輸入:#include<stdio.h> #include<math.h>main(){floata,b,c,s,area;

scanf(“%f%f%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));

printf(“a=%f,b=%f,c=%f,s=%f\n”,a,b,c,s);

printf(“area=%7.2f\n”,area);}*注意非法字符數(shù)據(jù)輸入scanf格式輸入函數(shù)按一定格式從輸入設備輸入若干個任意類型的數(shù)據(jù)。格式:

scanf("格式控制字符串",地址表列);

例:scanf("%d,%f",&a,&b);非格式字符格式說明地址表列數(shù)據(jù)輸入scanf格式輸入函數(shù)表3.2scanf函數(shù)的格式說明符格式說明符意義例子輸入數(shù)據(jù)舉例%d輸入一個十進制整數(shù)scanf(“%d”,&a);567%o輸入一個八進制數(shù)(無前導0)scanf(“%o”,&a);1067%f輸入一個小數(shù)形式的數(shù)scanf(“%f”,&a);567.789%s輸入一個字符串scanf(“%s”,&a);

This%x輸入一個十六進制數(shù)(無前導0x)scanf(“%x”,&a);

0x237%c輸入一個字符scanf(“%c”,&a);

A%e輸入一個科學計數(shù)法的浮點數(shù)scanf(“%e”,&a);5.68E+02%u輸入一個不帶正負號的十進制整數(shù)scanf(“%u”,&a);45數(shù)據(jù)輸入scanf格式輸入函數(shù)scanf附加格式說明符l

加在d、o、x、u前:輸入長整型;加在f、e前:輸入雙精度型;L

加在f、e前:輸入longdouble型;h加在d、o、x前:輸入短整型;m(一個整數(shù))表示數(shù)據(jù)占用的寬度;*本輸入項在讀入后不賦給相應的變量。數(shù)據(jù)輸入scanf格式輸入函數(shù)多數(shù)據(jù)項輸入時,輸入數(shù)據(jù)間的分隔有3種方式:采用系統(tǒng)分隔符(空格、回車、制表符Tab):scanf("%d%d%d",&a,&b,&c);用戶自己設定分隔符,如逗號、冒號等:scanf("%d,%d,%d",&a,&b,&c);設置輸入項位數(shù)(m),按位截取,如:scanf(“%2d%3d%4d”,

&a,

&b,

&c);

求1+2+……+100抽取具有共性的算式:sum=sum+isum初值為0,該算式重復100次,i從1變到100設i為循環(huán)變量,則:指定循環(huán)起點的表達式1:i=1給出循環(huán)條件的表達式2:i<=100設置循環(huán)步長的表達式3:i++循環(huán)體語句:sum=sum+i;for(i=1;i<=100;i++)sum=sum+i;例2計算并輸出1+2+……+100/*計算1+2+3+……+100*/#include

<stdio.h>main(){

int

i,sum;

sum=0;

//置sum初值為0

for(i=1;i<=100;i++)

//循環(huán)重復100次

sum=

sum

+i;

//反復累加

printf("sum=%d\n",sum);//輸出累加和}例2計算并輸出1+2+……+100循環(huán)變量累加和for循環(huán)for循環(huán)結(jié)構(gòu)及執(zhí)行

for(表達式1;表達式2;表達式3)

{

}先執(zhí)行表達式1。若表達式2的值非0,重復執(zhí)行循環(huán)體語句與表達式3。直到表達式2的值為0時止。循環(huán)體語句;循環(huán)起始條件循環(huán)結(jié)束條件循環(huán)增量…定義:除了1和自身外,無法被其他自然數(shù)整除的正整數(shù)。算法(窮舉法):設數(shù)為n,并設置一個標志flag為1;用2~n-1依次去除n,若能整除,則不是素數(shù),flag置0,跳出循環(huán);若都不能整除,循環(huán)正常結(jié)束,flag仍為1,n是素數(shù)。輸出:若flag為1,則輸出“n是素數(shù)”;若flag為0,則輸出“n不是素數(shù)”;例3判斷素數(shù)能否整除,使用取模(相除取余數(shù))運算符%,若n%k=0(即余數(shù)為0),則n可以被k整除。例3判斷素數(shù)輸入一個數(shù),判斷其是否為素數(shù)。main(){intn,

k,

flag;

printf("輸入一個數(shù):");

scanf("%d",&n);

for(flag=1,k=2;k<=n-1;k++)

if(n%k==0)

{

flag=0;

break;

}

//如果n%k≠0,則繼續(xù)循環(huán),否則退出循環(huán)

if(flag==1)

printf("%d是素數(shù)。\n",n);

else

printf("%d

不是素數(shù)。\n",n);}if語句if語句根據(jù)給定表達式的值進行判斷,從而確定執(zhí)行程序流程中的哪一個分支。表達式是由操作數(shù)和運算符按一定語法形式組成的符號序列。每個表達式經(jīng)過運算(求值)后都會產(chǎn)生一個確定的值,稱為表達式的值。if語句中表達式多為關(guān)系表達式或邏輯表達式。if語句中表達式的值分兩種:0與非0;

關(guān)系運算符及關(guān)系表達式1.關(guān)系運算符(均是二元運算符)<小于

<=小于或等于>大于

>=大于或等于==等于

!=不等于2.關(guān)系表達式兩個表達式與關(guān)系運算符可組成一個關(guān)系表達式。若比較關(guān)系成立,則關(guān)系表達式的值為1(true),否則為0(false)。如:13>27的求值結(jié)果為0,13<=21的求值結(jié)果為1。注意:等于是==(兩個等號)。優(yōu)先級高優(yōu)先級低邏輯運算符及邏輯表達式1.邏輯運算符邏輯運算亦稱布爾運算。邏輯運算符主要包括(優(yōu)先級由高到低):!(非)

&&(與)||(或)其中:!是一元運算符,其余是二元運算符。2.邏輯表達式邏輯表達式的操作數(shù)可以是字符類型、整數(shù)類型,結(jié)果為1或0。如:判斷閏年的邏輯表達式:(year%4==0&&year%100!=0)||year%400==0如上式值為1,則是閏年,否則不是。邏輯運算符及邏輯表達式1.邏輯運算符邏輯運算亦稱布爾運算。邏輯運算符主要包括(優(yōu)先級高到低):!(非)

&&(與)||(或)其中:!是一元運算符,其余是二元運算符。2.邏輯表達式邏輯表達式的操作數(shù)可以是字符類型、整數(shù)類型,結(jié)果為1或0。if語句1.簡單if語句(單臂)

if(表達式){語句序列;}如:

if(x>y)

printf(“%d”,x);表達式語句序列非00if語句2.第二種結(jié)構(gòu)的if語句(雙臂)

if(表達式){語句序列1;}else{語句序列2;}如:

if(x>y)

printf(“%d”,x);else

printf(“%d”,y);表達式語句序列2語句序列10非0輸出1~100之間的所有素數(shù)。/*輸出1~100之間的所有素數(shù)*/main(){

int

i,j;

for(i=2;i<100;i++){for(j=2;i%j;j++);

if(i==j)

printf("素數(shù)=%d\n",i);}}例3判斷素數(shù)將1~100之間的所有素數(shù)放到一個數(shù)組中。/*將1~100之間的所有素數(shù)放到一個數(shù)組中*/#include"stdio.h"main(){inti,j;intk,m,a[100];for(m=0;m<100;m++)a[m]=0;for(i=2,k=0;i<100;i++){for(j=2;i%j;j++);if(i==j){a[k]=j;k++;}}/*printf("共有%d個素數(shù)。\n",k);*/for(m=0;m<k;m++)printf("第%d個素數(shù)=%d\n",m+1,a[m]);}例3判斷素數(shù)引入宏定義。/*引入宏定義*/#include"stdio.h"#defineN100main(){inti,j;intk,m,a[N];for(m=0;m<N;m++)a[m]=0;for(i=2,k=0;i<N;i++){for(j=2;i%j;j++);if(i==j){a[k]=j;k++;}}/*printf("共有%d個素數(shù)。\n",k);*/for(m=0;m<k;m++)printf("第%d個素數(shù)=%d\n",m+1,a[m]);}例3判斷素數(shù)將1~N之間的所有素數(shù)放到一個文件中。/*將1~N之間的所有素數(shù)放到一個文件中*/#include"stdio.h"#include"stdlib.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論