PTA c語言溫習計畫

2021-10-20 06:40:33 字數 1654 閱讀 7239

因為我個人的編碼能力實在是太差了,大一上的時候很多**處於看懂但自己放掉資料純手打根本很難完成,於是想通過完成pta上的一些題目來加強自己的編碼能力,目前的小目標是45道函式題目完成三十道,主要目的是查缺補漏。

第一題:warning: ignoring return value of 『scanf』, declared with attribute warn_unused_result

scanf的返回值正被忽略

在查詢資料後

梳理了之前似懂非懂的scanf

scanf的返回值

scanf的返回值是已經成功賦值的變數個數。

也就是說在使用scanf("%d %d",&a,&b)

這個呼叫返回的值:

使用者輸入1 2時返回的是2,

使用者輸入的是1 b,那麼返回值為1,

如果輸入的是a b,那麼返回的是0。

如果遇到錯誤或遇到end of file,返回值為eof

說明格式控制符跟scanf的返回值有關

當我們在輸入的時候沒有按照格式輸入,比如要求是兩個數字,但輸入了字母會導致賦值失敗,這樣返回值就會一直是零,這樣也就一直是輸出0。

解決方法是在使用scanf時要考慮到位,可以使用條件語句對輸入的資料進行選擇

第二題是兩個數之間比大小

之前課本的方法是定義max函式再進行比較

**#include

#include

本題要求對兩個整數a和b,輸出其中較大的數。

intmax

(int a,

int b )

;int

main()

intmax

(int a,

int b )

else

return max;

}//然後更簡單的是直接return

intmax

(int a,

int b )

else

}

第三題:是要求輸出數字金字塔

先捋一捋思路

n 決定 有幾行 例如 5 就是有五層

1.最先想到的是 迴圈5層

2.考慮每一層有共通的兩個點: ①每一層一開始空得格是幾個 例如 第一層前面空了4個空格 第二層空了三個空格 (n-第幾層);

②每一層輸出幾  :第一層輸出 1  第二層輸出 2  第三層都是輸出3   所以也就是 輸出第1步中的第幾層
3.最後一步:考慮形狀 :每層輸出完 就換行 也就是在迴圈的最後進行 printf("\n");換行

**如下

void

pyramid

(int n)

for(j =

1; j <= k; j++

)printf

("\n");

}}

第四題:其中x是使用者傳入的整型引數。符號函式的定義為:若x大於0,sign(x) = 1;若x等於0,sign(x) = 0;否則,sign(x) = −1

int

sign

(int x)

第五題

旅遊規劃(pta c語言)

有了一張自駕旅遊路線圖,你會知道城市間的高速公路長度 以及該公路要收取的過路費。現在需要你寫乙個程式,幫助前來諮詢的遊客找一條出發地和目的地之間的最短路徑。如果有若干條路徑都是最短的,那麼需要輸出最便宜的一條路徑。輸入說明 輸入資料的第1行給出4個正整數n m s d,其中n 2 n 500 是城市...

PTA c語言找鞍點

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不存在,則輸出 non...

PTA C語言競賽 c

c 語言競賽是浙江大學計算機學院主持的乙個歡樂的競賽。既然競賽主旨是為了好玩,頒獎規則也就制定得很滑稽 0 冠軍將贏得乙份 神秘大獎 比如很巨大的一本學生研究 集 1 排名為素數的學生將贏得最好的獎品 小黃人玩偶!2 其他人將得到巧克力。給定比賽的最終排名以及一系列參賽者的 id,你要給出這些參賽者...