實(shí)驗(yàn)項(xiàng)目:
???1、字符與ASCII碼
???2、運(yùn)算符與表達(dá)式的應(yīng)用
???3、順序結(jié)構(gòu)應(yīng)用程序
???4、數(shù)學(xué)函數(shù)的算法描述
???5、雞兔同籠的算法描述
???6、確定坐標(biāo)的算法描述
姓名:黃志乾????實(shí)驗(yàn)地點(diǎn):教學(xué)樓514教室????實(shí)驗(yàn)時(shí)間:3月19日
1從鍵盤輸入一個(gè)大寫字母,要求轉(zhuǎn)換成小寫字母輸出,并輸出這個(gè)小寫字母相鄰的兩個(gè)字母;以及它們的ASCII碼值。
2#include<stdio.h> main() { char x; printf("請(qǐng)輸入一個(gè)大寫字母\n"); scanf("%c",&x); printf("小寫字母為:%c,%c,%c\n",x 31,x 32,x 33); printf("ASCII碼值為%d,%d,%d",x 31,x 32,x 33); }
3問(wèn)題:字符與數(shù)值的轉(zhuǎn)換
??解決辦法:通過(guò)不同類型輸出%c與%d實(shí)現(xiàn)
1從鍵盤輸入一個(gè)3位整數(shù),將輸出該數(shù)的逆序數(shù)。例如,輸入123,輸出321
2#include<stdio.h> main() { int a,b,c,x,y; printf("請(qǐng)輸入一個(gè)3位的正整數(shù):\n"); scanf("%d",&x); c=x/100; b=x0/10; a=x; y=a*100 b*10 c; printf("%d:%d\n",x,y); return 0; }
3問(wèn)題:個(gè)十百位數(shù)的算法
??解決辦法:通過(guò)取余與除法的結(jié)合并在此基礎(chǔ)上的運(yùn)算實(shí)現(xiàn)。
1編寫一個(gè)程序,用于醫(yī)藥收費(fèi)處納算賬。要求輸入所在醫(yī)院費(fèi)用(西藥費(fèi)、檢查費(fèi)、材料費(fèi)、床位費(fèi)、觀察費(fèi)和護(hù)理費(fèi)),打印出應(yīng)付錢款,再輸入病人所付款數(shù),打印出應(yīng)找錢數(shù)(已知某病人,西藥費(fèi)268.2元,檢查費(fèi)600元,注射用材料費(fèi)206元,床位費(fèi)120元,觀察費(fèi)360元,護(hù)理費(fèi)220元)。
2
int main(){ float x,j,c,hj,fk,zh,cw,g,f; printf("輸入西藥費(fèi),檢查費(fèi),材料費(fèi),床位費(fèi),觀察費(fèi),護(hù)理費(fèi):\n"); scanf("%f,%f,%f,%f,%f,%f,",&x,&j,&c,&cw,&g,&f); hj=x j c cw g f; printf("應(yīng)付款(元):%.2f",hj); printf("病人付款(元):"); scanf("%f",&fk); zh=fk-hj; printf("計(jì)算結(jié)果:\n"); printf("病人付款=%6.2f元\n應(yīng)收款=%6.2f元\n應(yīng)找回=%6.2f元\n",fk,hj,zh); return 0;}
3問(wèn)題:本實(shí)驗(yàn)主要是數(shù)據(jù)較多復(fù)雜程度較高,容易因數(shù)據(jù)處理失誤而出錯(cuò)
??解決辦法:認(rèn)真分清楚定義的每個(gè)數(shù)據(jù)及數(shù)據(jù)的相關(guān)類型,在語(yǔ)句上多檢查相關(guān)符號(hào)是否有缺漏。
1有一函數(shù) 請(qǐng)用流程圖表示該函數(shù)的算法。輸入x值,輸出滿足函數(shù)關(guān)系的y值。并用c語(yǔ)言編寫程序進(jìn)行檢驗(yàn)。
2
main(){ float x,y; printf("請(qǐng)輸入x的值:"); scanf("%f",&x); if (x<1) printf("%f",x); else if (x<10&&x>1) printf("%f",x*2-1); else printf("%f",x*3-1);}
3問(wèn)題:if語(yǔ)句與else if語(yǔ)句的嵌套容易出錯(cuò)
??解決辦法:注意語(yǔ)句的條件特別是語(yǔ)句的結(jié)束部分,以及輸出部分相關(guān)的符號(hào)是否完整或是否有出錯(cuò)。
1雞兔同籠問(wèn)題。將雞和兔子關(guān)在同一個(gè)籠子里,假如知道雞和兔子的總頭數(shù)h,雞和兔的總腳數(shù)f,請(qǐng)?jiān)O(shè)計(jì)算法,能計(jì)算出雞和兔分別有多少只。
2#include<stdio.h> main() { int h,f,x,y; printf("雞兔總數(shù),雞兔總數(shù):"); scanf("%d,%d",&h,&f); if(h>0&&f>0) { x=(4*h-f)/2; y=(f-2*h)/2; printf("雞:%d 兔:%d\n",x,y); } else printf("輸入錯(cuò)誤"); }
3問(wèn)題:8到9行算法上總是報(bào)錯(cuò),
??解決辦法:在4和h之間和2和h之間需要打上“*”號(hào),不能直接使用4h或2h。注意:當(dāng)條件輸出有多項(xiàng)時(shí)需要用包含在大括號(hào)內(nèi)。
1根據(jù)平面坐標(biāo),輸出圓塔的高度。
2#include<stdio.h> #include<math.h> main() { int h=10; float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4; printf ("請(qǐng)輸入一個(gè)點(diǎn)(x,y)"); scanf("%f,%f",&x,&y); d1=sqrt((x-x1)*(x-x1) (y-y1)*(y-y1)); d2=sqrt((x-x2)*(x-x2) (y-y2)*(y-y2)); d3=sqrt((x-x3)*(x-x3) (y-y3)*(y-y3)); d4=sqrt((x-x4)*(x-x4) (y-y4)*(y-y4)); if(d1>1&&d2>1&&d3>1&&d4>1) printf("該點(diǎn)高度為:0"); else printf("該點(diǎn)高度為:10"); }
3問(wèn)題:根號(hào)及平方的使用總是出錯(cuò)
??解決辦法:首先要先包含數(shù)學(xué)的頭文件,否則無(wú)法使用根號(hào)“sqrt”(并列條件需要使用“&&”)
本次實(shí)驗(yàn)課上總共進(jìn)行了6個(gè)實(shí)驗(yàn),由于缺少實(shí)機(jī)操作,起初我對(duì)于寫程序并沒(méi)有那么的熟練,通過(guò)這幾個(gè)實(shí)驗(yàn)我不但學(xué)習(xí)到了關(guān)于ASCII碼與數(shù)值的轉(zhuǎn)換,而且對(duì)于數(shù)據(jù)類型的異同與應(yīng)用更加熟練,在操作上更加的嫻熟,同時(shí)提升了寫代碼的速度。通過(guò)本次實(shí)驗(yàn)課讓我初步的認(rèn)識(shí)到算法在其中的重要作用,不同的數(shù)據(jù)類型能夠幫助我們巧妙的設(shè)計(jì)相應(yīng)的算法,在程序中是最為主要的部分。本次實(shí)驗(yàn)課程的主要提升在與對(duì)運(yùn)算符的使用上和if語(yǔ)句的使用及嵌套上,對(duì)于if語(yǔ)句的嵌套已有基本掌握,與此同時(shí)在編程中對(duì)于應(yīng)注意的事項(xiàng)變得更加了解,在編程時(shí)中降低了自己犯錯(cuò)的幾率,使編程更加得心應(yīng)手。
來(lái)源:http://www.icode9.com/content-4-146901.html