一、PTA實驗作業
題目1:7-2 最佳情侶身高
專家通過多組情侶研究數據發現,最佳的情侶身高差遵循着一個公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你倆的身高差不管是牽手、擁抱、接吻,都是最和諧的差度。
下面就請你寫個程序,為任意一位用戶計算他/她的情侶的最佳身高。
1.代碼
int N,i;
double H,height; // H輸入身高,height情侶身高
char sex;//sex為性別
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("\n%c%lf",&sex,&H);
if (sex=='F')
{
height=H*1.09;
printf("%.2f\n",height);
}
else
{
height=H*1.00/1.09;
printf("%.2f\n",height);
}
}
2.設計思路
1.定義整型變量N,i,以及雙精度浮點型變量H,height,以及字符型變量sex
2.輸入正整數N,選擇輸入次數,及循環次數
3.利用for的循環語句,分別輸入N次性別與身高
4.利用if-else語句,若為男性,則最佳情侶身高為height=H1.00/1.09,並且輸出;
5否則最佳情侶身高為 height=H1.09,並且輸出;
3.本題調試過程碰到問題及解決辦法
無明顯錯誤,以下為調試過程
4.本題PTA提交列表
題目2:
給定兩個均不超過9的正整數a和n,要求編寫程序求a+aa+aaa++⋯+aa⋯a(n個a)之和。
1.代碼
int a,n,i,total,count,sum; //a,n為正整數 count計算位數,sum計算總數
scanf("%d%d",&a,&n);
total=0;
count=1;
sum=a;
for(i=1;i<=n;i++)
{
total=total+sum;
count=count*10+1;
sum=a*count;
}
printf("s = %d",total);
2.設計思路
1.定義整型變量a,n,i,total,count,sum
2.輸入正整數a和n
3.設定total初始值為0.count初始值為1,sum=a
4.利用循環語句,累加total n次
5.利用公式,sum代表單位數值
6累加total 得出結果並輸出答案
3.本題調試過程碰到問題及解決辦法
無明顯錯誤,以下為調試過程
4.本題PTA提交列表
題目3:找出最小值
本題要求編寫程序,找出給定一系列整數中的最小值。
1.代碼
int number,N,i,min; //number為輸入的數字,N為輸入數量,i用於計算循環次數,min儲存最小值
scanf("%d",&N);
scanf("%d",&min);
for(i=1;i<=N-1;i++)
{
scanf("%d",&number);
if(number<min)
{
min=number;
}
}
printf("min = %d",min);
2.設計思路
第一步:定義整型變量 number,N,imin
第二步:輸入整數N
第三步;輸入第一個值,定義為目前最小值
第四步;利用循環語句,依次輸入一系列整數,並用if語句對整數進行比較,若小於min,則該數取代min成為最小值
第五步;輸出最小值
3.本題調試過程碰到問題及解決辦法
1.起初沒有將第一個數設置為最小數,導致程序編寫錯誤,在舍友幫助下將第一個數字設置於循環外,成功設置為最小值
2.調試截圖
4.本題PTA提交列表
題目4:
猜數字游戲是令游戲機隨機產生一個100以內的正整數,用戶輸入一個數對其進行猜測,需要你編寫程序自動對其與隨機產生的被猜數進行比較,並提示大了(“Too big”),還是小了(“Too small”),相等表示猜到了。如果猜到,則結束程序。程序還要求統計猜的次數,如果1次猜出該數,提示“Bingo!”;如果3次以內猜到該數,則提示“Lucky You!”;如果超過3次但是在N(>3)次以內(包括第N次)猜到該數,則提示“Good Guess!”;如果超過N次都沒有猜到,則提示“Game Over”,並結束程序。如果在到達N次之前,用戶輸入了一個負數,也輸出“Game Over”,並結束程序。
1.代碼
int number,N,number2,i;。//number為被猜數,N為猜測次數,number2為輸入的數字
scanf("%d%d",&number,&N);
for(i=1;i<=N+1;i++)
{
scanf("%d",&number2);
if(i<=N)
{
if(number2==number)
{
if(i==1)
{
printf("Bingo!");
break;
}
if(i==2)
{
printf("Lucky You!");
break;
}
if(i==3)
{
printf("Lucky You!");
break;
}
if(i==N)
{
printf("Good Guess!");
break;
}
if(i>N)
{
printf("Game Over");
break;
}
}
if(number2<0)
{
printf("Game Over");
break;
}
if(number2>number&&i<=N)
{
printf ("Too big\n");
}
if(number2<number&&i<=N)
{
printf ("Too small\n");
}
}
else
{
printf("Game Over");
break;
}
}
2.設計思路
第一步:定義整型變量number,number2,N,i
第二步:輸入被猜數以及猜測次數
第三步:利用if分支結構,先判斷用戶猜測次數是否超過了給定的判斷次數
第四步:若不超過,則再利用if分支結判斷測正確所用次數並且按照題目要求對不同猜測次數輸出不同答案
第五步:若超過,則按照題目要求輸出答案
第六步:再次利用if分支結構,判斷輸入過程中數字與被猜數的大小關系並且輸出提示,並判斷該數是否為0,若為0直接結束並且輸出提示
3.本題調試過程碰到問題及解決辦法
1.程序分支過多,導致嘗試許多次才完成編程
2.編程過程中遺漏了許多條件,在多次觀察,檢查后完成
3.未使用break導致程序提前結束
4.本題PTA提交列表
二、截圖本周題目集的PTA排名。
PTA排名
1.你學會了什么?
1.break以及continue語句的使用。
2.3種if語句分支結構的差別以及使用方法
3.如何輸入字符以及輸出字符,以及字符對應的代碼意義
2.你還不會什么
1.getchar的具體意義
2.如何簡化代碼
3.算法寫得不夠好
3.你碰到什么困難,打算如何解決?
1.編程時對於代碼的設計有點迷茫,還需要多做題目來聯系
2.打碼時誤用中文的標點符號
3.if嵌套語句使用的不夠熟練 需要多練習