一,pta分支結構7.2輸出正整數n
1,實驗代碼
#include<stdio.h>
#include<math.h>
int main()
{
int n,a;
scanf("%d%d", &n, &a);
if(n <= 10)
{
a = pow(2,n);
printf("2^%d = %d",n,a);
}else{
printf("n");
}
return 0;
}
2,設計思路
(1)算法
這道題是比較基礎的一道題,主要的算法就是
第一步:給出一個判斷n是否小於等於10。
第二步:如果是的話就計算2的n次冪的結果。
第三步:給出結果。
(2)流程圖
(3)本題調試過程碰到問題及解決辦法
1,這個分支結構,我選擇的題比較簡單,但不意味着我很容易就做出來了,也有很多錯誤。
(1)scanf輸入的變量有兩個,所以對應的%d也應該有兩個,但我只寫了一個。
解決方法:加入了一個%d。
(2)在運算過程中接觸到了2的x次冪的表達方法pow(2,x)。
解決方法: 通過老師和助教了解到冪的計算方法。
(3)最后的printf后續輸出的值應該有一個n和result,但我只給result定義了。
解決方法: 給n定義。
這是我在剛開始做題中遇到的一些錯誤,都很基礎。
二,pta循環一7.1
#include<stdio.h>
int main()
{
int number, i, a, count = 0, sum = 0;
float d;
printf("%d",number);
scanf("%d",&number);
if(number != 0)
{
for(i = 0;i < number;i++)
{
scanf("%d",&a);
sum = sum + a;
if(a <= 60)
{
count++;
}
}
d = sum*1.0/number ;
printf("average = %.1f\n",d);
printf("count = %d",count);
}else{
printf("error");
}
return 0;
}
2,設計思路
(1)算法
第一步:輸入共有幾人,並判斷number的大小,當number非零時執行循環。
第二步:把number的人分數加起來,分數低於60則count = count + 1。
第三步:把總分數除以人數。
第四步:給出平均分與不及格人數。
(2)流程圖
(3)本題調試過程碰到問題及解決辦法
這道題中,我的錯誤是沒有規避整數除整數的結果還是整數,在改寫后,程序計算完才乘以的1.0,已經沒有意義了。
解決方法:在sum上乘以1.0。
三pta循環二7.1
1,實驗代碼
#include<stdio.h>
int main()
{
int n,i,l,min;
scanf("%d",&n);
scanf("%d",&l);
min=l;
for(i=1;i<n;i++)
{
scanf("%d",&l);
if(min>l)
{
min=l;
}
}
printf("min = %d",min);
return 0;
}
2,設計思路
(1)算法
第一步:給最小值min賦值。
第二步:循環輸入n個數,當i小於n,輸出i代表的l,依次進行直到i>n。
第三步:判斷l與min的數值誰更小,把更小的數值賦予min。
第四步:輸出最小值min。
(2)流程圖
(3)本題調試過程碰到問題及解決辦法
1,問題
(1)沒有給min賦值。並且賦值不正確。
解決方法:重新給min賦值。
三,
1,
總結:
學習到了c語言基本的表達方式,用計算機的思維看問題。比如最簡單的hello world到現在的分支,循環,函數。學習了字符,整數,小數的表達。可以說計算機已經入門了,但是由於我總是分配不好自己的時間,目前保證不了每天都固定打代碼。所以說有很多知識都在淺顯層次。以后會爭取在睡前回顧一下今天所學的知識,保證基本代碼的數量,畢竟熟能生巧。
最近剛開始學習c語言,有很多不明白的地方,也錯了很多。
(1)總是分不清int與double的區別。
(2)scanf后忘記取地址符。
(3)for循環內沒有分號隔開。
(4)整數與整數運算忘記乘1.0。
(5)忘記寫return 0;
等等錯誤。但我相信今后我會更努力,也會更優秀。
2,評論同學作業。
評論魏璇
評論謝雨欣
評論劉洋
3,表格
折線圖