c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小
PTA上C語言程序設計練習題,包含查找書籍、字符串排序。主要用到字符串輸入scanf/gets 字符串賦值、比大小等知識。
1.查找書籍
習題9-4 查找書籍 (20 分)
給定n本書的名稱和定價,本題要求編寫程序,查找并輸出其中定價最高和最低的書的名稱和定價。
輸入格式:
輸入第一行給出正整數n(<10),隨后給出n本書的信息。每本書在一行中給出書名,即長度不超過30的字符串,隨后一行中給出正實數價格。題目保證沒有同樣價格的書。
輸出格式:
在一行中按照“價格, 書名”的格式先后輸出價格最高和最低的書。價格保留2位小數。
輸入樣例:
3
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25.0
結尾無空行
輸出樣例:
25.00, Programming in Delphi
18.50, Programming in VB
結尾無空行
1.1分析與代碼
首先我們讀入的東西都會被丟進緩沖區等待接收,比如abc\n,如果你使用scanf讀入的話,它在讀入到\n的時候就會提取它需要的東西了,但是它會給你留一個\n。
那么如果現在你突然想用gets讀一行字符串,問題就來了。
你的\n會被當做gets的終止讀入,然后你就讀不了了。
解決方法是:
getchar(),把這個\n給清掉。
2.字符串排序
習題8-7 字符串排序 (20 分)
本題要求編寫程序,讀入5個字符串,按由小到大的順序輸出。
輸入格式:
輸入為由空格分隔的5個非空字符串,每個字符串不包括空格、制表符、換行符等空白字符,長度小于80。
輸出格式:
按照以下格式輸出排序后的結果:
After sorted:
每行一個字符串
輸入樣例:
red yellow blue green white
結尾無空行
輸出樣例:
After sorted:
blue
green
red
white
yellow
結尾無空行
2.1分析與解答
1.字符串之間,想要把b字符串賦值給a字符串,此時不能直接用等號。需要用strcpy(a,b).
2.字符串比較大小,可以用strcmp函數
strcmp(str1,str2),若str1=str2,則返回零;若str1<str2,則返回負數;若str1>str2,則返回正數
總結
以上是生活随笔為你收集整理的c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 临时文件_其实邮箱可能才是最佳的临时文件
- 下一篇: 基于SVD的降维优化