C语言第三次作业
題目一:
1.實驗代碼:
int N,i;/*將用戶個數存放在N,循環控制變量存放于i*/double H,E;/*將用戶身高存放于H,對應情侶身高存放于E*/char sex;/*將性別存放于字符型變量sex中*/scanf("%d\n%c%lf\n",&N,&sex,&H);/*輸入變量*/for(i=1;i<=N;i++){switch(sex){case 'F':E=H*1.09;printf("%.2f\n",E);break;case 'M':E=H/1.09;printf("%.2f\n",E);break;}scanf(" %c%lf",&sex,&H); }2.設計思路:
- 1.定義整型變量N,i,浮點型變量H,E,字符型變量sex;
- 2.輸入變量;
- 3.i=1時,若sex為F,則E=H*1.09;否則E=H/1.09;
- 4.讀入新變量;
5.重復步驟3.4.,直到i>N,退出循環;
3.本題調試過程碰到問題及解決辦法:
- 1.剛開始時發現輸入兩個變量時只能輸出一個值,后來經過調試發現應在循環內再輸入一個scanf
讀取下一個變量值; 2.但是問題仍不完全解決,輸入兩個數是可以輸出對應的數值,但當N=3時,依舊只能輸出兩個,后來發現計算機只能讀取后面兩位,
第一位無法讀取,不過在PTA上也可以通過,所以有點納悶,反復調試也找不出原因,希望有人指點迷津;
4.本題PTA提交列表:
題目二:
1.實驗代碼:
int a,n,i,s,j,item,sum; /*將乘數存于a,將a的個數存于n,將循環控制變量存于i,將所有數的和存于s,將嵌套內的循環控制變量存于j*/scanf("%d%d",&a,&n);/**/s=0;for(i=1;i<=n;i++){item=a;sum=0;for(j=1;j<=i;j++){sum=sum+item;item=a*pow(10,j);}s=s+sum;}printf("s = %d",s);2.設計思路:
- 1.定義整型變量a,n,i,s,j,item,sum;
- 2.輸入變量a,n;
- 3.i=1,item=a,sum=0;
- 4j=1時,sum=sum+item, item=a*pow(10,j);
- 5.重復步驟4.,直到j>i,退出循環,i++,s=s+sum;
6.重復步驟3.4.5.,直至i>n,退出循環;
3.本題調試過程碰到問題及解決辦法:
- 1.一開始第二個for循環中將 item=apow(10,j);寫成 item=item10;后來經過調試改成 item=itempow(10,n);,經調試發現還是不對
最后改成 item=apow(10,j);即正確; 2.剛開始忘記給item,sum賦初值,導致結果錯誤,后來經調試發現錯誤,改正過來;
4.本題PTA提交列表:
題目三:
1.實驗代碼:
#include<stdio.h> int main() {int n,min,i,number;/*n存放輸入個數,min存放最小值,i作為循環控制變量,number存放輸入的數值*/scanf("%d\n",&n);scanf("%d",&number);min=number;for(i=1;i<n;i++){ scanf("%d",&number);if(number<min)min=number;}printf("min = %d",min);}2.設計思路:
- 1.定義整型變量n,min,i,number;
- 2.輸入數值n,number;
- 3.用min存放number;
- 4.i=1;再次輸入number,如果number<min,則min=number;
- 5重復步驟4,直到i<n,退出循環;
6.輸出min的值;
3.本題調試過程碰到問題及解決辦法:
1.格式錯誤是因為“=”號前后的數字和字母都要空一行,在PTA的提示下改正(格式錯誤一般都要檢查定義或輸出);
4.本題PTA提交列表:
題目四:
1.實驗代碼:
2.設計思路:
- 1.定義循環控制變量 i,程序的數字mynumber,用戶的數字yournumber,輸入個數N;
- 2.輸入N;
- 3.輸入mynumber;
- 4.’如果yournumber<mynumber,輸出Too small;如果yournumber>mynumber且,輸出Too big;如果yournumber==mynumber且i==1,輸出Bingo!;
如果yournumber==mynumber且i>3且i<=N,輸出Good Guess!;如果yournumber==mynumber&&i<=3,輸出Lucky You!;如果yournumber!=mynumber&&i==N,
輸出Game Over;如果yournumber==mynumber且i>N,或如果yournumber<0,跳出循環; 5.重復步驟3.4,直到輸入負數為止;
3..本題調試過程碰到問題及解決辦法:
- 1.調試DEV時,條件都能過,但是PTA做出如下提示:
這個問題還未解決; 2.看題時不夠認真,斷章取義,題目說“在一行中輸出每次猜測相應的結果,直到輸出猜對的結果或“Game Over”則結束。”,結果只看了“最后每行給出一個用戶的輸入,直到出現負數為止。”這句話,以為只要不輸入負數,就可以無限輸入數值,直到才猜對為止;
4.本題PTA提交列表:
二、截圖本周題目集的PTA最后排名。
三、本周學習總結
1.你學會了什么?
- 1學會了循環結構及嵌套循環;
- 2.學會了調試代碼;
- 3.明白了自學能力的重要性;
- 4.看到大佬們寫程序速度飛快,
他們之所以學得這么好,是因為他們比我們傾注了更多的時間,向他們學習;
2.本周的內容,你還不會什么?
- 1.遇到稍微復雜一點的題時,嵌套循環的算法便不會寫;
- 2.不會建工程項目;
3.分支結構上機考試總結。
(1)哪些地方錯了,為什么? - 1.第一題的log3^16不會表示,因為課本里沒有這種函數的表示法,只有lnx的表示法,
后來發現原來只要用數學公式將其互相轉換便可以,這里體現了數學里一個重要的轉換思想; - 2.成績轉換的題發現輸入九十幾時最后總會輸出AB,而不是A,后來發現是break沒加;
- 3.最后一題沒來得及提交,第二題沒做,做題速度太慢,腦子運行太慢,有待改進;
(2)后續要怎么找程序錯誤? - 1.當時不會調試程序,以后可以通過調試程序找錯誤,
結合人工查錯和PTA的錯誤提示來查錯;
(3)對自己成績滿意么?不滿意的話要怎么改進? - 1.不滿意,提升空間非常大;
- 2.以后每天都要寫代碼,鍛煉寫代碼的能力;
- 3.老師布置的作業要認真完成,絕不能再抱著馬馬虎虎的態度,必須賦予自己嚴謹的態度和使命感;
- 4.自學能力有待加強,有空多學一些有關C語言的書,可以鞏固課內知識,同時拓展視野;
轉載于:https://www.cnblogs.com/guoruiqian/p/7764339.html
總結
- 上一篇: 多种方式读取文件内容
- 下一篇: MyEclipse使用总结——在MyEc